Монодроид JavaScript-интерфейс

Monodroid еще не поддерживает JavaScriptInterface с WebView.

Я ищу пример файла .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");

person FlappySocks    schedule 15.10.2011    source источник


Ответы (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.
}

Не забудьте установить действие Build для файла .java на AndroidJavaSource.

person jonp    schedule 24.10.2011

Я знаю, что эта тема уже немного устарела. Но я нашел это, когда искал то же самое, и вот решение, как вы можете использовать методы С#

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

        }
}

AndroidInterface androidInterace = new AndroidInterface();
webView.AddJavascriptInterface(androidInterface, "Android");
person l4nk4b3l    schedule 30.05.2012