注释javascriptinterface无法正常工作

时间:2014-09-15 16:17:14

标签: android android-webview

    web = new WebView(this);
    web.loadUrl("file:///android_asset/www/index.htm");
    web.getSettings().setJavaScriptEnabled(true);
    web.addJavascriptInterface(new Logic(), "ob");
    setContentView(web);

    public class Logic {

    @JavascriptInterface
    public void consol(String data) {
        Log.i("info", "* WebView : " + data);
     }
}

我读到这个:
http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object

https://developer.android.com/reference/android/webkit/JavascriptInterface.html

逻辑是内部类,逻辑中的所有方法都是公共的,逻辑中的所有方法都添加@JavascriptInterface,
 我没有使用phonegap / proguard。

但是在api 17+的情况下,WebView无法访问逻辑中的方法(如consol) 我在这里读到了这个主题的所有讨论,但仍然无效 也许它是清单文件或项目设置中的东西。

任何想法??

$(window).ready(
    function() {
        window.ob.consol("webview") // not working
        tmpitems = logic.getNews();
        var items = jQuery.parseJSON(tmpitems);
        logic.consol(" Start web");

        $("#rsslength").html(tmpitems.length());

        $.each(items, function(key, val) {
            // logic.consol(val);
            $("#rsslist").append(
                    "<li>" + val.channel + " : " + val.title + "</li>")
                    //logic.consol( val.category+"--" + val.date);
        });

    });

还有其他文件,但重要的是这条线不起作用:

window.ob.consol(&#34; webview&#34;)//不工作
不打印日志。

0 个答案:

没有答案