8
votes

Alerte n'apparaît pas de la vue Web dans Android?

J'utilise l'échantillon fourni par Google pour démontrer une communication à deux sens entre JavaScript et Java,

ref [1]:

http://code.google.com/p/apps-for-android/source/webvieweMo/src/com/google/androïd/webvieviedemo/webvievemo.java

La fonctionnalité fonctionne bien. Je suis capable d'appeler la fonction JavaScript De Java et rappelez la fonction Java de JavaScript.

Le problème est quand j'utilise une alerte à l'intérieur d'une fonction JavaScript, elle n'a gagné apparaissent, mais la fonctionnalité à l'intérieur de la fonction fonctionne correctement.

Pourquoi alerte ("test") à l'intérieur d'une fonction JavaScript n'apparaît pas dans Android. Je charge le javascript dans un Web-View . Quand je clique sur Android J'appelle la fonction, mais cela n'apparaît pas.

Si quelqu'un connaît le problème, PALALSE aide-moi.

merci


4 Réponses :


18
votes
<html>
<head>
<script type="text/javascript">
function show_alert()
{
alert("Hello! I am an alert box!");
}
</script>
</head>
<body>

<input type="button" onclick="show_alert()" value="Show alert box" />

</body>
</html>

2 commentaires

Ya sa fonctionne, j'ai commis une erreur ... au lieu d'utiliser webchromeclient () directement que vous, je l'ai utilisé comme classe finale mywebchromeclient étend webchromeclient {@override publique boolean onjsalerert (vue WebView, String URL, String Message, Résultat JsResult) {Log.d (log_tag, message); résultat.Confirm (); retourne vrai; }} alors j'utilise comme vous avez dit son travail


Mais est-il possible de changer le titre d'alerte



0
votes

Utilisez la méthode suivante,

WebView wv=new WebView(this);   
wv.setWebChromeClient(new WebChromeClient() {
@Override
    public boolean onJsAlert(WebView view, String url, String message,JsResult result) {
    //Required functionality here
    return super.onJsAlert(view, url, message, result);
}


0 commentaires

0
votes

Il suffit d'utiliser webchromeclient. Cela fera tout. XXX

Cela fonctionnera.


0 commentaires

1
votes

En ajoutant les deux lignes suivantes, mon JavaScript fonctionne:

mWebview.setWebViewClient(new WebViewClient()());
mWebview.setWebChromeClient(new WebChromeClient());


0 commentaires