久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - Android 的 webview 中怎么監聽 url 的 hash 變化

瀏覽:104日期:2024-02-19 14:23:11

問題描述

場景

Android 的 webview 中加載一個 SPA (單頁面應用)網站

過程

我通過 shouldoverrideurl 方法來監聽 Webview 的 URL,對 URL 進行某些預處理

但是,SPA 中大部分是 hash 值變化,因此這個方法就監聽不到變化

舉例

從 a.html#/home 跳轉到 a.html#/other

問題

請問有什么辦法監聽 hash 值的變化嗎?

問題解答

回答1:

只能通過 HTML5 新增加的 window.onhashchange() API。shouldoverrideurl 應該監聽不到吧。

如果你不想修改 js 代碼,可以在 java 中注入:

定義一個處理 js 的類:

private class MyJSI { public void doStuff() {// 你的邏輯 }}

注入到 webview 中:

webView.addJavascriptInterface(new MyJSI(), 'myjsi');

監聽 onhashchange 事件:

webview.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) {view.loadUrl('javascript:window.onhashchange = function() { myjsi.doStuff(); };'); }});

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 龙游县| 张家口市| 湘乡市| 仙居县| 昌江| 中西区| 天气| 巩义市| 广河县| 准格尔旗| 昂仁县| 黑龙江省| 长泰县| 永安市| 呼图壁县| 博爱县| 南充市| 大港区| 江源县| 威海市| 广昌县| 壤塘县| 宁海县| 西乌| 宁津县| 龙井市| 新竹县| 南康市| 临夏县| 清原| 凤庆县| 静乐县| 双江| 马龙县| 宜春市| 阿克陶县| 平江县| 永新县| 买车| 周口市| 沐川县|