从android webview调用时,If else语句在javascript onclick()中不起作用?

从android webview调用时,If else语句在javascript onclick()中不起作用?,javascript,android,if-statement,onclick,buttonclick,Javascript,Android,If Statement,Onclick,Buttonclick,在android webview中,onClick()函数中包含if-else语句时,该函数无法正常工作。我在下面添加了代码。 如果我错过了,请提供你的建议。 非常感谢 function exampleCall(message) { if(navigator.userAgent.match(/Android/i)) { androidexampleCall(message); } if(navigator.userAgent.match(/iPhone|iPa

在android webview中,
onClick()
函数中包含if-else语句时,该函数无法正常工作。我在下面添加了代码。 如果我错过了,请提供你的建议。 非常感谢

function exampleCall(message) { 

   if(navigator.userAgent.match(/Android/i)) {
      androidexampleCall(message);
   }

   if(navigator.userAgent.match(/iPhone|iPad|iPod/i)){
       iOSexampleCall(message);
   }                            
}
JS呼叫:


我猜不起作用的调用是
androidexampleCall(message)

定义一个界面并将其添加到活动的webview中,如:

 Webview wv;
 //... 
 wv.addJavascriptInterface(new myJavaScriptInterface(), "CallToAnAndroidFunction");
 //...
 public class myJavaScriptInterface {
     @JavascriptInterface
     public void androidexampleCall(String message);{
        //code
     }
 }
在Js代码中,您应该按如下方式执行调用:

 function exampleCall(message) { 

   if(navigator.userAgent.match(/Android/i)) {
     window.CallToAnAndroidFunction.androidexampleCall(message);
   }

   if(navigator.userAgent.match(/iPhone|iPad|iPod/i)){
     iOSexampleCall(message);
   }                            
}

似乎您没有为Web视图启用Javascript:

webview.getSettings().setJavaScriptEnabled(true);
编辑:

使用此Webview测试您的代码:

webview = (WebView)findViewById(R.id.webView1);
webview.getSettings().setJavaScriptEnabled(true);

webview.loadUrl("http://jonathanalbrieux.com/others/testagent.html");

Button buttonReload = (Button)findViewById(R.id.button1);
buttonReload.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        webview.loadUrl("http://jonathanalbrieux.com/others/testagent.html");

    }
});
本页:

<html>
<head>

</head>
<body>
    <div id="clickable" onclick="test('a')">clickaqd</div>
    <script>

        function test(string){
            if(navigator.userAgent.match(/Android/i)) {
                var divClickable = document.getElementById("clickable");
                divClickable.innerHTML = string;
            }

        }
    </script>
</body>

点击AQD
功能测试(字符串){
if(navigator.userAgent.match(/Android/i)){
var divClickable=document.getElementById(“clickable”);
divClickable.innerHTML=字符串;
}
}


如果一切正常,可能您在
androidexampleCall
函数中遇到了一些问题。

感谢您的回复,我们需要添加“window.call和roidFunction.androidexampleCall(message);”这是javascript或android代码中的代码。我遵循了代码,但只有当我将其放在if-else语句之外时,我才能获得输出。当我将其放在if-else语句中时,它不起作用。我如何纠正这一点。谢谢。Jonathan我的javascript代码可以工作,但当我将android代码放在if-else语句中时,上面的场景不起作用工作