簡體   English   中英

JavaScript在Android WebView中不起作用

[英]JavaScript doesn't work in Android WebView

我想通過webView加載一個url。 該網址是http://wapp.baidu.com/f?kw=%BB%F0%BC%FD ,此頁面可以在系統默認瀏覽器上正常運行,但在我的webView中,有些JavaScript無效。 JavaScript已啟用,我不知道它有什么問題。

我將不勝感激任何幫助。

private void initUI() {
    webView = (WebView) findViewById(R.id.web_view);
    webView.getSettings().setJavaScriptEnabled(true);

    final NavigationBar navigationBar = (NavigationBar) findViewById(R.id.navigationbar);
    navigationBar.refreshUI();
    navigationBar.rightButton.setImageResource(R.drawable.refresh);
    navigationBar.rightButton.setVisibility(View.VISIBLE);
    navigationBar.rightButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            refresh();
        }

    });

    navigationBar.leftButton.setImageResource(R.drawable.back);
    navigationBar.leftButton.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            webView.goBack();
        }

    });

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

        public void onPageFinished(WebView view, String url) {
            navigationBar.leftButton.setVisibility(webView.canGoBack() ? View.VISIBLE
                    : View.INVISIBLE);
            super.onPageFinished(view, url);
        }
    });

    refresh();
}

更新:問題解決只需添加以下代碼:

webView.getSettings().setDomStorageEnabled(true);

如果您正在使用proguard,它將停止javascript運行。 例如,在我的proguard-project.txt文件中,我有以下內容:

if your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

我認為javascript文件緩存/刷新存在一些問題。 我更改了js的文件名,它開始正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM