2011-10-15 8 views
4

MonodroidはまだWebViewでJavaScriptInterfaceをネイティブにサポートしていません。Monodroid JavaScript Interface

私はこの回避策で使用できる.javaファイルの例を探しています。あなたのようなカスタム.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"); 

答えて

2

// 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. 
} 

はAndroidJavaSourceまでにご.javaファイルのビルドアクションを設定することを忘れないでください。

+0

そのように簡単です。ありがとう。 – FlappySocks

1

私はこのスレッドが既に少し古いことを知っています。しかし、私は同じことを探していたときにこれを見つけました。ここではC#メソッドを使用する方法を解説します。

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

     } 
} 

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