从android应用程序转换的blackberry 10应用程序的javascript调用java函数

从android应用程序转换的blackberry 10应用程序的javascript调用java函数,java,javascript,android,blackberry,interface,Java,Javascript,Android,Blackberry,Interface,以下是我的情况: 我已经将Android应用程序转换为Blackberry z10应用程序。每件事都很好,除了一件, 在我的应用程序中,Java代码与Javascript通信,反之亦然。在安卓系统中,这相当简单 myWebView.addJavascriptInterface( new JSCommunicator() , "JSCommunicator" ); 从Javascript调用函数,如 JSCommunicator.foo()但是它在z10上不工作。有办法解决这个问题吗? 感谢您的

以下是我的情况:
我已经将Android应用程序转换为Blackberry z10应用程序。每件事都很好,除了一件, 在我的应用程序中,Java代码与Javascript通信,反之亦然。在安卓系统中,这相当简单

myWebView.addJavascriptInterface( new JSCommunicator() , "JSCommunicator" );
从Javascript调用函数,如
JSCommunicator.foo()
但是它在z10上不工作。有办法解决这个问题吗?
感谢您的帮助,并为糟糕的语言感到抱歉。

您是否已将
@JavascriptInterface
添加到JS界面中

 public class JSCommunicator {
     @JavascriptInterface
     public void foo() {
     //...
     }
 }

从Android4.2开始,您现在必须使用@JavascriptInterface显式注释公共方法,以便从托管JavaScript访问它们。请注意,只有将应用程序的minSdkVersion或targetSdkVersion设置为17或更高版本时,此选项才会生效


添加它并导入
android.webkit.JavascriptInterface

您是否已将
@JavascriptInterface
添加到JS界面中

 public class JSCommunicator {
     @JavascriptInterface
     public void foo() {
     //...
     }
 }

从Android4.2开始,您现在必须使用@JavascriptInterface显式注释公共方法,以便从托管JavaScript访问它们。请注意,只有将应用程序的minSdkVersion或targetSdkVersion设置为17或更高版本时,此选项才会生效


添加它并导入android.webkit.JavascriptInterface好的,我找到了解决方案,也许这不是最好的答案,但它解决了问题,在z10模拟器上运行良好

在android中使用
JavaScriptInterface
类处理警报,通过这种方式,如果您将应用程序转换为blackberry应用程序,您还可以处理警报,并根据消息做任何您想做的事情

例:

在安卓系统中

myWebView.setWebChromeClient( new WebChromeClient(){
    public boolean onJsAlert( WebView view , String url , String message , android.webkit.JsResult result ){
         if(message.compareTo( "onFoo" ) == 0){
              foo();
              result.confirm();
    return true;
         }
         return false;
    }


}
);

好的,我找到了解决方案,也许这不是最好的答案,但它解决了问题,在z10模拟器上运行良好

在android中使用
JavaScriptInterface
类处理警报,通过这种方式,如果您将应用程序转换为blackberry应用程序,您还可以处理警报,并根据消息做任何您想做的事情

例:

在安卓系统中

myWebView.setWebChromeClient( new WebChromeClient(){
    public boolean onJsAlert( WebView view , String url , String message , android.webkit.JsResult result ){
         if(message.compareTo( "onFoo" ) == 0){
              foo();
              result.confirm();
    return true;
         }
         return false;
    }


}
);

我像你说的那样添加了注释,但很抱歉,这并没有解决问题。发布你的代码。有很多事情需要评论…同时检查我几周前做的回答。如果您使用
window.JSCommunicator.foo
调用,请在webview设置上启用JS执行
setJavaScriptEnabled(true)
…我像您所说的那样添加了注释,但很抱歉,这并没有解决问题。发布您的代码。有很多事情需要评论…同时检查我几周前做的回答。如果使用
window.JSCommunicator.foo
调用,请在webview设置上启用JS执行
setJavaScriptEnabled(true)
。。。