单机器人JavaScript接口

单机器人JavaScript接口,javascript,android,xamarin.android,Javascript,Android,Xamarin.android,Monodroid还不支持WebView的JavaScriptInterface 我正在寻找一个可用于此解决方案的示例.java文件 IntPtr JavaScriptInterface_Class = JNIEnv.FindClass ("the/package/for/JavaScriptInterface"); IntPtr JavaScriptInterface_ctor = JNIEnv.GetMethodID (JavaScriptInterface_Class, "<init

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");
IntPtr JavaScriptInterface_Class=JNIEnv.FindClass(“the/package/for/JavaScriptInterface”);
IntPtr JavaScriptInterface_ctor=JNIEnv.GetMethodID(JavaScriptInterface_类,“,”()V”);
IntPtr instance=JNIEnv.NewObject(JavaScriptInterface类,JavaScriptInterface类);
appView.AddJavascriptInterface(新的Java.Lang.Object(实例),“Android”);

您可以使用自定义的
.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

我知道这个线程已经有点旧了。但我在寻找相同的方法时发现了这一点,下面是如何使用c#方法的解决方案

public class AndroidInterface : Java.Lang.Object
{
        [Export]
        public void Save(string text)
        {

        }
}

AndroidInterface androidInterace = new AndroidInterface();
webView.AddJavascriptInterface(androidInterface, "Android");