安卓的WebView不具有自定义加载JavaScript WebViewClient [英] android: webview not loading javascript with custom WebViewClient

查看:194
本文介绍了安卓的WebView不具有自定义加载JavaScript WebViewClient的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个非常基本的的WebView 这工作,直到我尝试添加自定义的 webViewClient ,其中停止处理JavaScript的。难道我做错了什么?有另一种方式来摆脱在WebView中的地址栏和菜单选项的?

 浏览器=(的WebView)findViewById(R.id.webkit);    WebSettings webSettings = browser.getSettings();
    webSettings.setJavaScriptEnabled(真);    //取消注释此行,都将加载删除地址栏,还不停的JavaScript
    //browser.setWebViewClient(new InternalWebViewClient());    //即使在取消这条线将停止加载的JavaScript
    //browser.setWebViewClient(new WebViewClient());    browser.setWebChromeClient(新InternalWebChromeClient());
    如果(savedInstanceState!= NULL){
        browser.restoreState(savedInstanceState);
    }其他{
        browser.loadUrl(HTTP://site.with.javascript);
    }


解决方案

由于某种原因WebKit的运行JS不同于浏览器 - 我最终得到解决该问题,迫使一些JS与以下行运行该页面有后加载:

  browser.loadUrl(JavaScript的:的document.getElementById('东西')do.something());

I've got a very basic WebView which works until I try to add a custom webViewClient where it stops processing JavaScript. Am I doing something wrong? Is there another way to get rid of the address bar and menu options in the WebView?

    browser = (WebView) findViewById(R.id.webkit);

    WebSettings webSettings = browser.getSettings();
    webSettings.setJavaScriptEnabled(true);

    // uncommenting this line will remove address bar, but also stop JavaScript from loading
    //browser.setWebViewClient(new InternalWebViewClient());

    // even uncommenting this line will stop JavaScript from loading
    //browser.setWebViewClient(new WebViewClient());

    browser.setWebChromeClient(new InternalWebChromeClient());
    if (savedInstanceState != null) {
        browser.restoreState(savedInstanceState);
    } else {
        browser.loadUrl("http://site.with.javascript");
    }

解决方案

For some reason the webkit runs JS differently than the browser - I ended up getting around the issue by forcing some JS to run with the following line after the page had loaded:

browser.loadUrl("javascript:document.getElementById('something').do.something()");

这篇关于安卓的WebView不具有自定义加载JavaScript WebViewClient的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆