gpt4 book ai didi

java - 如何处理来自 native android 应用程序的 javascript 事件?

转载 作者:行者123 更新时间:2023-11-29 09:21:37 25 4
gpt4 key购买 nike

我有一个本地 android 应用程序,我想在 HTML 页面在 Android 手机的浏览器中运行时跟踪 javascript 事件和方法调用。所以基本上,每当浏览器网页上的 javascript 触发函数调用/事件时,我希望浏览器通知 native 应用程序有关函数调用/事件的信息。怎么办??

最佳答案

您可以使用 WebView 而不是浏览器来完成:

HTML 部分(将此 html 页面加载到您的 webView):

<!doctype html>
<html>
<body>
<div style="text-align:center; margin-top:50px">
<h3>My Headding</h3>
<button onclick="fireThisMethod('My message')" type="button">Click Me!</button>

</div>
</body>
<script type="text/javascript">

function fireThisMethod() {
var msg = Android.getMsgFromJava();
document.getElementsByTagName("h3")[0].innerText = msg;
Android.sendJsMsgToWebView("Message to java");
}

</script>
</html>

Java WebView部分,加载webView url后添加下面一行:

// JS interface
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

在下面添加内部类:

public class JavaScriptInterface {
Context context;

JavaScriptInterface(Context context) {
this.context = context;
}

@SuppressWarnings("unused")
@JavascriptInterface
public void sendJsMsgToWebView(String webMessage) {
Toast.makeText(context, "Get from javascript web" + webMessage, Toast.LENGTH_SHORT).show();
}

@SuppressWarnings("unused")
@JavascriptInterface
public String getMsgFromJava() {
return "Return from native java";
}

}

关于java - 如何处理来自 native android 应用程序的 javascript 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com