2016-12-26 1 views
0

J'essaie de créer une application web pour Android en utilisant WebView. Mon cenary est très simple, j'ai un fichier index.html avec un bouton:JS ReferenceError sur Android WebView pour api niveau 15

<button id="connect-button" onclick="connect">Connect</button> 

et un élément simple (script):

<script> 
connect = function() { 
    alert("Oi"); 
}; 
</script> 

Côté Android J'ai une activité pour charger ce fichier sur Webview

WebView web; 
web = (WebView) findViewById(R.id.webview01); 

//ProgressBar related to the xml 
progressBar = (ProgressBar) findViewById(R.id.progressBar1); 
progressBar.setMax(100); 

web.setWebViewClient(new myWebClient()); 
web.setWebChromeClient(new MyWebViewClient()); 
web.getSettings().setJavaScriptEnabled(true); 
web.getSettings().setLoadWithOverviewMode(true); 
web.getSettings().setUseWideViewPort(true); 
web.loadUrl("file:///android_asset/index.html"); 

pour le niveau api 19 ou au-dessus de tout fonctionne bien. Mais pour api niveau 15 à 18 webview ne peut pas charger ma méthode javascript simple "connecter".

Je recherche beaucoup sur les problèmes avec webview pour le niveau de l'api ci-dessous 19, mais c'est un test très simple. Quelqu'un fait parfois quelque chose de semblable à l'api 15?

Répondre

0

Résolu

Pour mon cas, le problème est que aparently WebView pour les API inférieur à 19, vous devez mettre tout code explicitement sur l'objet « de la fenêtre ».

Alors, quand je change mon script java à

<script> 
window.connect = function() { 
    window.alert("Oi"); 
}; 
</script> 

tout fonctionne!

Nous avons beaucoup de questions semblables à ce problème, si cela fonctionne pas pour vous vérifier aussi: