0

有没有办法在 WebView 中启用 JavaScript?

我目前正在尝试通过这样做来启用 JavaScript:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);   
    webview = new WebView(this);
    setContentView(webview);

    webview.getSettings().setAppCacheEnabled(false);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setInitialScale(1);
    webview.getSettings().setPluginState(PluginState.ON);

    WebSettings webSettings = webview.getSettings();

    webSettings.setLoadsImagesAutomatically(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setBuiltInZoomControls(true);  
    webSettings.setUseWideViewPort(true);

    webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);              
            return false;
        }
    });        


    webview.setWebChromeClient(new WebChromeClient(){});

    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setAppCacheEnabled(true);
    webSettings.setAppCachePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/cache");
    webSettings.setDatabaseEnabled(true);
    webSettings.setDatabasePath(getApplicationContext().getFilesDir().getAbsolutePath() + "/databases");


    webview.loadUrl("http://www.youtube.com/user/Okudjavavich");    
}

但是 JS 似乎没有启用,因为 YouTube 视频不播放 YouTube 广告。有人知道可能是什么问题吗?

4

1 回答 1

2

有没有办法在 WebView 中启用 JavaScript?

是的,通过您拥有的代码:

webview.getSettings().setJavaScriptEnabled(true);

就您而言,问题在于您的测试(播放 YouTube 视频和寻找广告)很复杂。一个更简单的测试有助于确定 JavaScript 确实启用,但其他因素正在影响 Google 的 YouTube 页面服务。在这种情况下,它似乎是基于用户代理的。

于 2013-09-17T23:14:13.850 回答