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;)//不工作
不打印日志。