Monodroid的JavaScript接口 [英] Monodroid JavaScript Interface
本文介绍了Monodroid的JavaScript接口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Monodroid还没有原生支持JavaScriptInterface用的WebView。
我正在寻找一个例子,可以用此替代方法可用于.java文件。
IntPtr的JavaScriptInterface_Class = JNIEnv.FindClass(下称/包/为/ JavaScriptInterface);
IntPtr的JavaScriptInterface_ctor = JNIEnv.GetMethodID(JavaScriptInterface_Class,&其中;初始化>中,()V);
IntPtr的实例= JNIEnv.NewObject(JavaScriptInterface_Class,JavaScriptInterface_ctor);
appView.AddJavascriptInterface(新的java.lang.Object(实例),机器人);
解决方案
您可以使用自定义的.java
如:
// TODO:用一个实际有效的软件包名称。 :-)
包the.package.for;
公共类JavaScriptInterface {
//该JNI在原来的问题采用的是默认的构造函数。
//无论是提供我们明确地或使用隐式单...
公共JavaScriptInterface()
{
}
// TODO:将您从此处的JavaScript希望可调用的任何方法。
}
不要忘记设置生成操作为你的的.java
文件来为 AndroidJavaSource
Monodroid does not yet natively support JavaScriptInterface with WebView.
I'm looking for an example .java file that can be used with this workaround.
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");
解决方案
You could use a custom .java
such as:
// 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.
}
Don't forget to set the Build action for your .java
file to to AndroidJavaSource.
这篇关于Monodroid的JavaScript接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文