相关疑难解决方法(0)

JavaScript无法在Android Webview中使用?

我正在尝试制作Android版本的相对简单的iOS应用程序,它使用webview,一些按钮然后依赖于对CMS的javascript调用.

但我很早就陷入了困境:webview无法使用javascript.我已经阅读了很多关于如何在Android webview中启用JS的帖子,但到目前为止还没有运气.

以下是我的一些代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.setWebViewClient(new HelloWebViewClient()
    {
        @Override  
        public void onPageFinished(WebView view, String url)  
        {  
            //Calling an init method that tells the website, we're ready 
            mWebView.loadUrl("javascript:m2Init()");
            page1(mWebView);
        }  
    });
  mWebView.loadUrl("http://my_url/mobile/iphone//app.php");  
}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack(); …
Run Code Online (Sandbox Code Playgroud)

javascript android webview

60
推荐指数
6
解决办法
6万
查看次数

Android webview SKIPS javascript甚至包含setJavascriptEnabled(true)和WebChromeClient

(使用三星Galaxy Tab和Android 3.0,这适用于每个3.0+平板电脑,就像在浏览器中一样,而不是webview)

我有一个CSS和jQuery的页面在浏览器,Android浏览器和iOS设备中加载很好,但android webview拒绝一致地加载它.

我已经缩小了问题,只是在加载javascript时跳过javascript(通过复制一些webview javascript演示应用程序的问题).为什么是这样?

这是完整的测试HTML代码 http://pastebin.com/GmE2vEYx

以下是我称之为:

  myWebview.loadUrl("file:///android_asset/myPage.html");
  myWebview.getSettings().setJavaScriptEnabled(true);
  myWebview.setWebChromeClient(new WebChromeClient());
Run Code Online (Sandbox Code Playgroud)

这三个调用的顺序不会影响结果.

  myWebview.getSettings().setJavaScriptEnabled(true);
  myWebview.setWebChromeClient(new WebChromeClient());
  myWebview.loadUrl("file:///android_asset/myPage.html");
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是,如果你给它时间(通过在调试器中暂停应用程序断点),那么javascript将更加一致地加载.这导致我尝试使应用程序加载速度较慢的一些牵强附会的实验,但这实际上不是所需的用户体验.我真的希望Android webview真的不是移动开发的IE6.

其他事实:

如果删除<script>包含所有Jquery 的标记,则页面会快速加载所有CSS格式.一旦添加了Jquery,就什么都没有加载.

我还发现了几个遇到完全相同问题的其他问题,许多问题没有得到答复,或者对OP正在寻求的内容没有确切的答案:(

看: Android:即使使用setJavaScriptEnabled(true)也无法让javascript在WebView上运行

页面重新加载(Webview.loadUrl)导致Javascript未被(完全)处理

http://groups.google.com/group/android-developers/browse_thread/thread/9962064ef217a5a7#

JavaScript有时在android的webview中不起作用

Android WebView没有加载JavaScript文件,但Android浏览器加载它很好

Android的Webview无法处理javascript?

建议?让我们来到这个底部!android文档说webview有局限性,但我不知道那个限制在哪里,因为人们一直在制作HTML CSS JS应用程序!

javascript android function code-injection webview

8
推荐指数
1
解决办法
9165
查看次数

标签 统计

android ×2

javascript ×2

webview ×2

code-injection ×1

function ×1