JavaScript无法调用Android 这是html代码。 充电班 然后我在webview中点击这个按钮,logcat是 我的代码是错误的。 应改为 无法在外部调用private,感谢@Bemmu的评论。第二个错误是: “成员”应为“myObj”,JavaScript代码为: $(函数(){ $('.rechangeMember')。单击(函数(){ if(myObj的类型!=“未定义”) { myObj.member(); } 其他的 { 成员(); } }); })
JavaScript无法调用Android 这是html代码。 充电班 然后我在webview中点击这个按钮,logcat是 我的代码是错误的。 应改为 无法在外部调用private,感谢@Bemmu的评论。第二个错误是: “成员”应为“myObj”,JavaScript代码为: $(函数(){ $('.rechangeMember')。单击(函数(){ if(myObj的类型!=“未定义”) { myObj.member(); } 其他的 { 成员(); } }); }),javascript,android,Javascript,Android,因此,将调用Android函数。在addJavaScriptInterface()中指定的名称将成为对象的名称。所以你必须使用 rechargeMember.rechargeMember(); 我对安卓系统一无所知,但rechargeMember应该是公共的而不是私有的,因为它是从外部访问的吗?@Bemmu谢谢你的回答,我已经将rechageMember更改为公共的,但日志也更改为“Uncaught TypeError:rechargeMember不是函数”。好的,我希望其他人能帮助你:)@B
因此,将调用Android函数。在
addJavaScriptInterface()
中指定的名称将成为对象的名称。所以你必须使用
rechargeMember.rechargeMember();
我对安卓系统一无所知,但rechargeMember应该是公共的而不是私有的,因为它是从外部访问的吗?@Bemmu谢谢你的回答,我已经将rechageMember更改为公共的,但日志也更改为“Uncaught TypeError:rechargeMember不是函数”。好的,我希望其他人能帮助你:)@Bemmu非常感谢!我已经解决了我的问题。
member_level_show.getSettings().setJavaScriptEnabled(true);
member_level_show.getSettings().setDomStorageEnabled(true);
member_level_show.setWebChromeClient(new WebChromeClient());
member_level_show.addJavascriptInterface(new Recharge(), "rechargeMember");
member_level_show.loadUrl(Constants.URL_MEMBER_LEVEL + CurrentUserBean.getCurrentUser().getToken());
class Recharge{
@JavascriptInterface
private void rechargeMember() {
log("recharge");
}
}
"Uncaught ReferenceError: rechargeMember is not defined"
class Recharge{
@JavascriptInterface
private void rechargeMember() {
log("recharge");
}
}
class Recharge{
@JavascriptInterface
public void rechargeMember() {
log("recharge");
}
}
member_level_show.addJavascriptInterface(new Recharge(), "rechargeMember");
<script>
$(function(){
$('.rechangeMember').click(function(){
if(typeof myObj != 'undefined')
{
myObj.rechargeMember();
}
else
{
rechargeMember();
}
});
})
rechargeMember.rechargeMember();