您好,登錄后才能下訂單哦!
Android Webview雖然提供了頁面加載及資源請求的鉤子,但是對于h6的ajax請求并沒有提供干涉的接口,這意味著我們不能在webview中干涉javascript發起的http請求,而有時候我們確實需要能夠截獲ajax請求并實現一些功能如:統一的網絡請求管理、cookie同步、證書校驗、訪問控制等。
那么究竟有沒有辦法能在Webview中攔截ajax請求呢?
雖然在 Webview中無法直接攔截 ajax請求(其實在shouldInterceptRequest
中是可以收到ajax請求的,但是遺憾的是取不到請求參數,這樣也是沒有意義的), 我們可以轉換思路,能不能在js中將所有的請求轉發到native中,這樣也就達到了相同的目的。如果可以,那就需要一種在javascript和native之間通信的橋梁(javascript bridge),通過它,javascript將請求信息傳遞給native, native完成真正的請求后再將結果數據傳遞給javascript。那么我們的思路就是:
在javascript中攔截所有ajax請求,然后通過javascript bridge將請求信息傳遞給native
native收到請求信息后,進行一些與處理邏輯,然后完成本次請求,將請求結果通過javascript bridge再回傳給javascript.
這樣,在第二步native上收到請求信息后,我們就可以進行統一的網絡請求管理、cookie同步、證書校驗、訪問控制。思路雖然簡單,但實現起來卻是比較麻煩,因為需要前端和native都需要做不少的工作。那么有什么簡單的方法嗎?當然有!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。