1
我有我的MainActivity:JavaScriptInterface方法無法識別(的Android的WebView)
webView.addJavascriptInterface(new JavaScriptInterface(this), "ajaxHandler");
....
public class JavaScriptInterface
{
Context mContext;
JavaScriptInterface(Context c) {
mContext = c;
}
public void DoSomething(String dataToPrint)
{
.....
}
}
我讀的問題可能是proguard的。 所以我更新了proguard的規則文件:
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
-keep public class com.example.testapp.JavaScriptInterface
-keep public class * implements com.example.testapp.JavaScriptInterface
-keepclassmembers class * implements com.example.testapp.MainActivity.JavaScriptInterface{
public *;
}
它並沒有什麼幫助......在chrome調試器,因爲我把控制檯的ajaxHandler對象和DoSomething的方法,我可以看到ajaxHandler對象Object {}
但它是空的,且該方法DoSomething的是undefined
謝謝你,'@ JavascriptInterface'註解部分幫助 - 我現在可以在chrome調試器中看到該方法,但由於某種原因它沒有在我的應用程序代碼中調用(javascript代碼很好, m在應用程序的iOS版本上使用相同的JavaScript代碼,它在那裏工作完美..) – BVtp
已經改變了你的proGuard.pro文件 – Pavya
我可以用'public *;'替換';''吧?它仍然無法正常工作,但我可以在Chrome調試器中看到該方法,但它不會在我的應用程序中調用。 –
BVtp