如果 else 语句在 javascript onclick() 中不起作用,当从 android webview 调用
If else statement not working in javascript onclick() when called from android webview?
在onClick()
函数中,其中包含一个ifelse语句,无法从android webview正常工作。我在下面添加了代码。如果我错过了,请提供您的建议。多谢。
function exampleCall(message) {
if(navigator.userAgent.match(/Android/i)) {
androidexampleCall(message);
}
if(navigator.userAgent.match(/iPhone|iPad|iPod/i)){
iOSexampleCall(message);
}
}
JS调用:
<div onclick="javascript:exampleCall('GameOn');">.... </div>
我想不起作用的调用是androidexampleCall(message)
.
定义一个界面并将其添加到活动的 Web 视图中,例如:
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);
编辑:
使用此 Web 视图测试了您的代码:
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>
一切正常,也许您在androidexampleCall
功能上遇到了一些问题。
相关文章:
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 当从jqueryajax调用输入表单时,它不起作用
- 当按钮从ajax调用时,jquery不起作用
- RefreshFilter在DHTMLX网格中不起作用.当我使用自定义组合框时
- 我的Javascript没有'当我把一个脚本元素放在头上从URL加载它时,它不起作用
- parseInt 不起作用,从字符串中获取数字
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 当我从下拉列表中选择公司名称时,UpdatePanel 自动发布返回=true 并且自动完成文本框不起作用
- 如果 else 语句在 javascript onclick() 中不起作用,当从 android webview 调用
- 已检查函数 JavaScript 不起作用.当我单击任何形状时,它不会创建表格结构
- HTML POST->重定向工作,XMLHTTPrequest->重定向不起作用(无法从null发出任何请求
- 当从代码隐藏(C#)调用Javascript函数时,该函数不起作用
- 当类被从子元素调用的javascript更改时,CSS转换不起作用
- CRM 2013:当从Advanced Find打开记录时,取消任务的Javascript不起作用
- 当从Laravel中的资源控制器访问视图时,Vue.js中的$http.get不起作用
- 当我从PHP回显jQuery时,它不起作用
- 当我从数据库中检索值时,为什么Parse中的链式函数不起作用
- D3实时绘图:从右滑动&当数据长度超过限制时移位数据转换不起作用
- 当从外部方法调用时,RaphaelJS的animate不起作用
- 当在canvas元素中从表单向文本发送文本时,删除文本不起作用