2

我有个问题。HTML5 页面可以与 android 中的原生组件交互吗?

我想要实现的是在显示内容列表的 HTML5 页面上。我想创建一些内容已到达的通知。?

我猜,这样做的一种方法是使用 webview 并在那里显示我的 HTML5 内容,但是如何从 webview 获取回调,以便我可以通过通知栏通知用户某些内容已经到达,可以使用本机 android 访问编码?

我已经知道如何在 android 上创建通知以及如何创建 webview,我只需要找到一种方法将数据从 html5 页面发送到 android 组件,反之亦然。

这可以实现还是过于雄心勃勃?

4

1 回答 1

3

是的,您可以通过 JavaScript 接口实现这一点。通过这个,JavaScript 可以调用您附加的接口中定义的函数。

http://developer.android.com/guide/webapps/webview.html

在你的Activity

WebAppInterface mInterface;

public void onCreate() {
    mInterface = new WebAppInterface(this);
    mWebView.addJavascriptInterface(mInterface, "MyAndroidInterface")
}

现在定义一个调用将转到的对象:

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

现在Javascript你可以这样做:

MyAndroidInterface.showToast("hello world");

返回(从nativeJavascript)的方式,您可以通过Javascript injection. 定义函数Javascript

function helloBack(param) {
} 

现在你可以打电话mWebView.loadUrl("javascript:helloBack(hi);");

于 2013-05-01T14:29:41.367 回答