我试图在java代码中检测webview的html按钮。
我的HTML代码:
<button id="fc_complete_order_button" class="fc_button" type="button" value="Complete Your Purchase" onclick="FC.checkout.validateAndSubmit()">Complete Your Purchase</button>
<div id="fc_complete_order_processing" style="display:none;">
<strong class="fc_error"></strong> <br>
<img src="//cdn.fox.com/static/v/1.1.0/images/ajax-loader.gif?ver=1" alt="Loading..." width="220" height="19">
</div>
我的Java代码是:
final WebView browser = (WebView) findViewById(R.id.browser);
String html="";
try {
Document doc1 = Jsoup.connect(lastLoadedURL).get();
html=doc1.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
browser.getSettings().setJavaScriptEnabled(true);
browser.addJavascriptInterface(new Object() {
@JavascriptInterface
public void validateAndSubmit() throws Exception {
Toast.makeText(MainActivity.this, "Login clicked", Toast.LENGTH_LONG).show();
}
}, "FC.checkout");
任何人都可以建议我做错了吗?
答案 0 :(得分:1)
我认为“FC.checkout”是问题所在。 Google文档告诉我们 name the name used to expose the object in JavaScript 。在JavaScript“FC.checkout”中它是2个对象: FC 和结帐 所以你试图在 FC 对象中创建 checkout 对象,但是浏览器中不存在 FC 对象,我想你可以抓住它“对象未定义“异常。
我不确定,现在无法检查,但我会检查并更新答案。
更新: 这个假设是正确的。只需在Java代码和HTML中将 FC.checkout 替换为 FC (或符合JS naming rquirments的任何其他内容)