javascript - onPageFinished() 方法未在 android 的 webview 中调用
问题描述
当我使用这个特定的 url = realtor.com
onPageFinished() 工作,但是当我点击这个URL 的搜索按钮时,onPageFinished 不能工作,只是因为数据来自 javascript
**WebActivity.java**
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
WebView webView = (WebView) findViewById(R.id.webview1);
webView.setWebChromeClient(new WebChromeClient() { });
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(),"android");
webView.loadUrl("https://www.realtor.com");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.d("=====", "====Start " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.d("=====", "=======Finish " + url);
view.loadUrl("javascript:window.android.onUrlChange(window.location.href);");
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d("=====", "====shouldOverrideUrlLoading " + view.getUrl());
return super.shouldOverrideUrlLoading(view, request);
}
});
}
class MyJavaScriptInterface {
@JavascriptInterface
public void onUrlChange(String url) {
Log.d("hydrated", "onUrlChange" + url);
}
}
}
我的问题是 我只想获取我当前的 URL 并且我需要知道我的页面已更改
解决方案
推荐阅读
- node.js - Firebase 函数:未调用“onCreate”函数
- react-native - 执行 setState() 时数组未更新
- python - 如何在不将其写入文件的情况下从 Internet 下载和处理数据?
- ionic-framework - Ionic 4 自定义样式 Shadow DOM
- django - 如何计算 django jsonfield 中的键数
- c++ - QT 打开不存在的数据库
- r - 在 r 的 flexdashboard 上使用感测器和闪亮突出显示的文本会引发错误“尝试应用非功能”
- html - Vue.js "@click.prevent" 隐藏 HTML "required" 属性默认验证消息(请填写该字段。)
- javascript - 悬停在图例上并悬停在 nvD3 中的路径效果上
- java - 在尝试解析 JSON 数据时出现此错误 W/System.err: org.json.JSONException: No value for customers