Alerte JavaScript ne fonctionne pas sous Android WebView
Dans mon application j'utilise WebView
et que je suis en utilisant JavaScript alert( )
méthode mais sa ne fonctionne pas, pas de pop-up apparaît.
dans mon fichier de 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 la mise en page fichier xml, j'ai ajouté
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Aucune idée de comment faire pour activer la pleine JavaScript
dans WebView
?
Mise à jour
Merci mark
le alert()
méthode dans le html
fichier travaillent maintenant 🙂 .
Maintenant il y a deux questions dans WebView
:
1: je suis à l'aide d'un <textarea>
dans le fichier html que je suis en cours de chargement dans WebView
, et d'essayer d'écrire en Hindi police de la langue, mais quand j'essaye d'écrire en Hindi texte, il s'affiche comme symboles ( rectangle les symboles [] ) .
quand je fais la même chose dans le navigateur firefox sur le bureau, il fonctionne très bien.
aucune idée de comment donner de la prise en charge de plusieurs langues dans textarea
dans WebView
?
2: Quand je clique sur soumettre et à essayer d'ouvrir la valeur de texte dans alert()
méthode dans un autre script java, ça ne fonctionne pas , signifie-t-il même après l'utilisation de WebChromeClient
applicable uniquement pour le courant de chargement de la page html et pas javascripts
appelé à partir de la page ?
- C'est "JavaScript", pas "Java Script", "java-script", ou "Java script" (qui est apparu dans votre question initiale). J'ai corrigé pour vous.
- Je me risquerais à dire qu'il devrait être appelé Javascript.
- Nope. 🙂 "JavaScript" est une marque déposée de Oracle (gotta love fusions et acquisitions), et utilisé (avec autorisation) par Mozilla pour leur mise en œuvre. Dans les deux cas, le capital S. C'est la seule forme normative de ce nom. L'autre nom de la langue, bien sûr, est ECMAScript (ou ES), mais personne ne l'utilise, sauf lorsque l'on parle de ES5.
- Je me tiens à corriger 🙂
Vous devez vous connecter pour publier un commentaire.
Vérifier cette lien , et le dernier commentaire , Vous devez utiliser
WebChromeClient
pour votre but.webview.getSettings().setJavaScriptEnabled(true);
Comme d'autres l'ont indiqué, la définition de la WebChromeClient est nécessaire pour obtenir
alert()
de travail. Il suffit simplement de définir la valeur par défaut WebChromeClient():Merci pour tous les commentaires ci-dessous. Y compris John Smith, qui a indiqué qu'il fallait activer JavaScript.
mWebView.getSettings().setJavaScriptEnabled(true);
avant la lignemWebView.setWebChromeClient(new WebChromeClient());
webview.getSettings().setJavaScriptEnabled(true);
prompt
à partir de javascript, au lieu d'afficher le texte de l'invite, il dit, "de La page à l'adresse https://... dit:" totalement briser l'immersion de la WebView être intégré dans l'applicationLe code suivant fonctionne:
Juste ajouter
Il va travailler.
Vous pouvez essayer avec cela, il a travaillé pour moi