我有一个用Java实现的javascript接口,由我在webview中加载的javascript代码调用.
JS Inside webview:
Android.myFunction(function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
Java的:
public class JavaScriptInterface {
Context context;
WebView webView;
JavaScriptInterface(Context c, WebView w) {
context = c;
webView = w;
}
public void myFunction(String callback) {
//when I log callback, it is "undefined"
String someData = "Yay for data";
String js =
"javascript:(function() { "
+ "var callback = " + callback + ";"
+ "callback('" + someData + "');"
+ "})()";
webView.loadUrl(js);
}
}
Run Code Online (Sandbox Code Playgroud)
由webview加载的字符串最终为:
javascript:(function() {var callback = undefined; undefined();})()
Run Code Online (Sandbox Code Playgroud)
我有一些想法: …