从android webview调用时,If else语句在javascript onclick()中不起作用?
在android webview中,从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
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语句中时,上面的场景不起作用工作