gpt4 book ai didi

javascript - Android WebView 似乎对每个设备的行为有所不同

转载 作者:行者123 更新时间:2023-12-02 13:10:11 27 4
gpt4 key购买 nike

我正在构建一个依赖于 WebViews 来渲染 Assets 文件夹中的 HTML 文件的应用程序。这些文件包含 Javascript。该应用程序在我自己的设备上完美运行,包括所有 Javascript。但 Android Studio 中的 Android 模拟器仅在某些页面上执行部分 Javascript。其中一位测试人员的设备显示空白页面而不是 HTML 文件。我们另一位测试人员的设备也无法正确执行所有 Javascript。

所以,我不太确定在这里做什么。所有页面都使用完全相同的 WebView 方法加载,并且大多数 Javascript 也相似。我无法调试或发布在每个设备上表现不同的应用程序。

加载WebView的代码:

    WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
WebSettings webSettings = myWebView.getSettings();
CookieManager.getInstance().setAcceptCookie(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowContentAccess(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
myWebView.setWebChromeClient(new WebChromeClient() {
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
myWebView.loadUrl("file:///android_asset/www/file.html");

myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.toString());
return true;
}
});

再一次,该应用程序在我自己的 Android 设备上完美运行。即使我重新安装了它。我只是不明白为什么它不能在其他设备上工作。有人有解决方案或解释吗?

最佳答案

我建议你使用WebView远程调试,这样你就可以看到你的html文件的WebView中运行的源代码,然后你可以在Chrome浏览器中单击网页来查看页面的 react 。这就是我在 webview 遇到问题时采取的方法。

您所需要做的就是运行以下代码

if (Build.VERSION.SDK_INT >= 19){
WebView.setWebContentsDebuggingEnabled(true);
}

或者您可以找到有关 remote-debugging 的更多详细信息

关于javascript - Android WebView 似乎对每个设备的行为有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com