2016-12-12 55 views
1

我使用android webview,它加載頁面和加載後的javascript函數調用,但它不起作用。對於測試我運行警報功能,它運作良好。Android的webview不工作js功能

設置網頁視圖:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     webView = (WebView) findViewById(R.id.webView); 
     webView.setWebChromeClient(new WebChromeClient()); 
     webView.getSettings().setDomStorageEnabled(true); 
     webView.getSettings().setUseWideViewPort(true); 
     webView.getSettings().setJavaScriptEnabled(true); 

    webView.addJavascriptInterface(new myJavaScriptInterface(), "CallToAnAndroidFunction"); 
    if (Build.VERSION.SDK_INT >= 19) { 
     // chromium, enable hardware acceleration 
     webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
    } else { 
     // older android version, disable hardware acceleration 
     webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
    } 

    webView.loadUrl("url"); 
    webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      // Make a note that the page has finished loading. 
      authorization(); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 

     } 
    }); 

private void authorization() { 
     webView.loadUrl("javascript:appReg(" + deviceId + "," + "promoCode);"); 
    } 

不起作用 webView.loadUrl( 「JavaScript的:appReg(」 + DEVICEID + 「」 + 「促銷碼);」);

如果調用webView.loadUrl("javascript:alert('asd')");,它的工作

回答

0
webView.loadUrl("javascript:appReg(" + deviceId + "," + "promoCode);"); 

需要添加 '' webView.loadUrl("javascript:appReg('" + deviceId + "," + "promoCode);'");