java - 安卓 : callback function from java script to java

标签 java javascript android

我创建了一个应用程序,我在其中使用 webview 并加载一个简单的静态 html 页面。我正在从 Activity 中调用 java 脚本函数,但我无法从 java 脚本中调用函数。我尝试了几个链接,但没有用。
Javascript Callback function pass to Android
I cannot call an android function from javascript
这是我的代码。提前谢谢你。


acitivity_main.xml

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Call JavaScript Function"
        android:onClick="callJavaScript" />

<WebView
    android:id="@+id/myWebView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

index.html

<html>
<head>
<script type="text/javascript">
        function displayMessage(){
            document.getElementById('test1').innerHTML = 'This is from java script.';
            Android.returnResult();
        }
    </script>
</head>
<body>
    <h1 id="test1">Hello World</h1>
</body>
</html>

主要 Activity 有以下两个功能。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myWebView = (WebView) this.findViewById(R.id.myWebView);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.addJavascriptInterface(new JavaScriptHandler(this), "Android");
        myWebView.loadUrl("file:///android_asset/index.html");
    }

    public void callJavaScript(View view) {
        Log.v(null, "Calling java Script");
        myWebView.loadUrl("javascript:displayMessage()");
    }

这是 JavaScriptHandler 类

public class JavaScriptHandler {
    Context mContext;

    public JavaScriptHandler(Context context) {
        mContext = context;
    }

    public void returnResult() {
        Log.v(null, "result received");
    }
}

最佳答案

成功

@JavascriptInterface
public void returnResult() {
    Log.v(null, "result received");
}

此注释允许将方法公开给 JavaScript。

关于java - 安卓 : callback function from java script to java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20243686/

相关文章:

java - 额外的 Intent

javascript - jQuery 对象到字符串请帮忙

javascript - 将 html 文件附加到 mocha 测试文件中的 JSDOM

javascript - 单击表单中的提交按钮时,将焦点放在空白字段上

具有物理特性的 Android 3D 对象

java - Eclipselink:从 JOIN 查询创建对象

java - 如何正确规范化具有复合字符的字符串?

java - 用 Java 下载多个文件

android - 多线程此示例代码 :

android - 如何避免在 Android M 上处于电池/省电模式时停止我的前台服务