创建应用程序时,我注意到它未被识别,因为未设置变量
navigator.standalone
。我首先想到我会在注入 javascript 时手动修复此 bij 设置,如下所示:
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webView.evaluateJavascript("navigator.standalone = true;", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.e(TAG + "jsinject", s);
}
});
}
});
webView.addJavascriptInterface(new WebAppInterface(this, webView), "Android");
然而,这注入得太晚了,一些 Javascript 函数不会触发,因为它不被识别为独立应用程序。是否可以在页面加载完成之前设置 var?
我将函数
onPageFinished(WebView view, String url)
替换为 onPageStarted(WebView view, String url, Bitmap favicon)
,这会在页面完全加载之前注入导航器变量