【发布时间】:2016-01-14 12:30:39
【问题描述】:
我可以使用@JavascriptInterface 在 Cordova 5.4.0 应用程序中成功地从 JS 调用本机 java 代码。但是在添加了cordova-plugin-crosswalk-webview 之后,它就不起作用了。搜索后,我将代码修改为:-
public class MainActivity extends CordovaActivity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
loadUrl("file://android_assets/www/index.html");
((XWalkView)appView.getEngine().getView()).addJavascriptInterface(this,"MainActivity");
}
@JavascriptInterface
public void getMessage() {
Toast.makeText(getApplicationContext(), "this is my Toast message!!! =)",Toast.LENGTH_LONG).show();
}
}
从js调用本机代码为:
window.MainActivity.getMessage();
我也导入了
import org.xwalk.core.JavascriptInterface;
import org.xwalk.core.XWalkView;
也试过替换
@JavascriptInterface
与
@org.xwalk.core.JavascriptInterface
现在应用程序甚至无法打开。它崩溃了。请帮忙。
【问题讨论】:
-
任何异常信息?
-
java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.cloudlabz.allsaletags/com.cloudlabz.allsaletags.MainActivity}: java.lang.UnsupportedOperationException: addJavascriptInterface
-
你为什么不直接使用cordova插件呢?
-
是的,最后,在花了 1.5 个月的时间之后,我不得不使用插件。
标签: javascript android cordova webview