javascript - 检测是否在 Android WebView 中单击了特定按钮

标签 javascript android webview

我目前正在开发一款安卓应用。这个应用程序包含一个 WebView 并显示一个不属于我的网站。 (例如网上商店)

当用户点击本网站上的特定按钮(例如“购买产品”按钮)时,该应用程序应该能够识别/检测到。如果用户点击这样的按钮,应用程序会弹出 toast 。

我知道这对于每个网站来说都是不同的,但是我通常如何对点击检测进行编程?我读了一些关于注入(inject) JavaScript 等的文章,但是我真的不明白这是如何工作的。有没有办法说:如果用户点击 id=buy_button 的按钮,然后显示 toast?

感谢您的帮助!

最佳答案

webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
   view.loadUrl("javascript:document.getElementById('buy_button').onclick = function(){alert('my message');}");
}
});

这会告诉您的 webview,当它完成加载时需要执行您的自定义 javascript 代码。在这种情况下,js 代码在页面中搜索 ID 为“buy button”的元素,并设置 onclick 处理程序以提醒您的消息。

如果您特别需要 toast ,那么您将需要设置一个 javascript 接口(interface),然后调用它们的方法。有道理吗?

关于javascript - 检测是否在 Android WebView 中单击了特定按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620431/

相关文章:

javascript - 从 JavaScript 调用 Android 方法

javascript - 评级栏弹出窗口?(就像亚马逊的那个)

javascript - 使用 Soundcloud 和 wordpress iram 播放下一首歌曲

javascript - ReactJS 在客户端和服务器上运行不同的代码。

java - 在 API 26 或更高版本中使 BroadcastReceiver 在后台工作

android - 如何每 10 秒调用一次函数?

java - 如何在 Android 应用程序中显示键盘?

macos - 如何清除 Cocoa 中的 WebView 缓存?

javascript - 除了 bootstrap 之外,如何向上自定义下拉菜单

flutter - 预览文本/富文本格式的网址