Dans mon application que j'utilise WebView
et en ce sens que j'utilise la JavaScript alert( )
méthode mais qu'elle ne fonctionne pas, aucune fenêtre contextuelle n'apparaît.
dans mon fichier manifeste, j'ai ajouté
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
et dans le fichier d'activité j'ai ajouté
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/demo.html");
Dans le fichier xml de mise en page, j'ai ajouté
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Un indice sur la façon d'activer le full JavaScript
in WebView
?
Mettre à jour
Merci de marquer
la alert()
méthode dans le html
fichier fonctionne maintenant :).
Maintenant, il y a deux problèmes dans WebView
:
1: J'utilise un <textarea>
dans le fichier html que je charge WebView
et j'essaie d'écrire dans une police de langue hindi, mais lorsque j'essaie d'écrire du texte en hindi, il s'affiche sous forme de symboles (symboles rectangulaires comme []).
quand je fais la même chose dans le navigateur Firefox sur le bureau, cela fonctionne bien. un indice sur la façon de prendre en charge plusieurs langues textarea
en WebView
?
2: Lorsque je clique sur Soumettre et que j'essaye d'ouvrir la valeur du texte dans la alert()
méthode dans un autre script java, cela ne fonctionne pas, cela signifie-t-il que même après avoir utilisé WebChromeClient
son application uniquement pour la page html chargée actuelle et non javascripts
appelée à partir de cette page?
la source
Réponses:
Vérifiez ce lien, et dernier commentaire, vous devez utiliser
WebChromeClient
pour votre but.la source
webview.getSettings().setJavaScriptEnabled(true);
Comme d'autres l'ont indiqué, la configuration de WebChromeClient est nécessaire pour se mettre
alert()
au travail. Il suffit de définir le WebChromeClient () par défaut:Merci pour tous les commentaires ci-dessous. Y compris John Smith qui a indiqué que vous deviez activer JavaScript.
la source
mWebView.getSettings().setJavaScriptEnabled(true);
avant la lignemWebView.setWebChromeClient(new WebChromeClient());
webview.getSettings().setJavaScriptEnabled(true);
la source
prompt
partir de javascript, au lieu d'afficher le texte de l'invite, il est dit: "La page https: // ... dit:" brisant totalement l'immersion de la WebView intégrée dans l'applicationLe code suivant fonctionnera:
la source
Tu peux essayer avec ça, ça a marché pour moi
la source
si vous souhaitez masquer l'URL de l'utilisateur, affichez un AlertDialog comme ci-dessous.
la source