Monodroid尚未使用WebView本身支持JavaScriptInterface。
我正在寻找可以与此解决方法一起使用的示例.java文件。
IntPtr JavaScriptInterface_Class = JNIEnv.FindClass ("the/package/for/JavaScriptInterface");
IntPtr JavaScriptInterface_ctor = JNIEnv.GetMethodID (JavaScriptInterface_Class, "<init>", "()V");
IntPtr instance = JNIEnv.NewObject (JavaScriptInterface_Class, JavaScriptInterface_ctor);
appView.AddJavascriptInterface (new Java.Lang.Object (instance), "Android");
答案 0 :(得分:2)
您可以使用自定义.java
,例如:
// TODO: use an actually valid package name. :-)
package the.package.for;
public class JavaScriptInterface {
// The JNI in the original question uses a default constructor.
// Either provide one explicitly or use the implicit one...
public JavaScriptInterface ()
{
}
// TODO: add any methods you want invokable from JavaScript here.
}
不要忘记将.java
文件的构建操作设置为 AndroidJavaSource 。
答案 1 :(得分:1)
我知道这个帖子已经有点旧了。但我在寻找相同的时候发现了这一点,以下是解决方法如何使用c#方法
public class AndroidInterface : Java.Lang.Object
{
[Export]
public void Save(string text)
{
}
}
AndroidInterface androidInterace = new AndroidInterface();
webView.AddJavascriptInterface(androidInterface, "Android");