2016-09-14 18 views
0

WebViewでWebページを実行しようとしています。私がロードしているページにはjavascriptがあり、デスクトップブラウザで動作しますが、アンドロイドエミュレータでは動作しません。エミュレータでは、私はこのエラーを取得する:Android WebView "未定義のgetAttribute 'プロパティを読み取れません"

09-13 18:29:18.496 32087-32087/com.gamesmart.gamesmart I/chromium: [INFO:CONSOLE(91)] "Uncaught TypeError: Cannot read property 'getAttribute' of undefined", source: http://dev.gamesmart.com/mobile (91)

私はページ上で実行していますJavaScriptが次のようになります。このような

<script> 
    window.onload = function(){ 
     var items = document.querySelectorAll('a.item'); 
     for(var i = 0; i < items.length; i++){ 
      var item = items[i]; 
      item.addEventListener('click', function(event){ 
       event.preventDefault(); 
       window.JSInterface.playGame(items[i].getAttribute('href')); 
      }); 
     } 
    } 
</script> 

その後のJava私が実行しているルックス:

public class MainActivity extends AppCompatActivity { 

    private WebView webView; 
    private WebViewClient client; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     JavaScriptInterface jsInterface = new JavaScriptInterface(this); 

     // Setup the WebView 
     webView = (WebView) findViewById(R.id.webView); 

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

     webView.setInitialScale(1); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setLoadsImagesAutomatically(true); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setLoadWithOverviewMode(true); 
     webView.getSettings().setUseWideViewPort(true); 
     webView.getSettings().setDomStorageEnabled(true); 

     webView.addJavascriptInterface(jsInterface, "JSInterface"); 

     // Load a default URL into the webview 
     webView.loadUrl("http://dev.gamesmart.com/mobile"); 
    } 

} 

何か不足していますか?

答えて

0

この

window.JSInterface.playGame(item.getAttribute('href')); 
+0

この

window.JSInterface.playGame(items[i].getAttribute('href'));

を交換してみてください私は今、新しいエラーを取得していますように見える、それを見て、それを変更!これが問題だったかもしれないように見える... –

関連する問題