Android Webview Javascript无法正常运行

时间:2018-05-30 11:52:37

标签: javascript android twitter webview

我的列表视图中显示了推文列表。我在listview上设置了一个监听器,该监听器应该将用户带到特定的推文。

我名单上的听众如下:

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent intent = new Intent(TweetActivity.this, WebActivity.class);

            intent.putExtra("url", String.valueOf(twitterBaseURL+tweetResult.get(i).getId()));
            startActivity(intent);
        }
    });

在我的网络活动课程中,我正在做以下事情:

String url = getIntent().getExtras().getString("url");
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setDomStorageEnabled(true);
webView.loadUrl(url);

在网页视图中,它不像在移动设备上使用谷歌浏览器那样加载页面。我认为javascript无法正常加载。

更新1:

我在带有API 21的Android设备上测试了这个。在我的android工作室里面,我有一个带有API 23的虚拟设备。在API 23中,这会正确加载所有内容。我创建了另一个带有API 21的虚拟设备并经过测试以进行双重检查,因此问题在于API级别。此代码在API 23中有效,可以在Web视图中正确加载URL,但在API 21中却没有?

2 个答案:

答案 0 :(得分:0)

启用JavaScript

默认情况下, WebView 中禁用了

JavaScript 。您可以通过 WebView 附带的 WebSettings 启用它。您可以使用 getSettings()检索 WebSettings ,然后使用 setJavaScriptEnabled()启用JavaScript。

例如:

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_assets/your_page.html");

答案 1 :(得分:0)

看看this,虽然谈论的问题是反应原生的。

上面提到的最后一点是尝试在真正的Android设备上运行。实际上有时Android模拟器无法正常工作。

所以我建议首先使用API​​ 21在真正的Android设备上测试你的代码