使用 cordova-plugin-crosswalk-webview 从 JS 调用本机 Java 代码
Calling native java code from JS with cordova-plugin-crosswalk-webview
我可以使用@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
现在应用程序甚至无法打开。它崩溃了。请帮忙。
在onXWalkReady()
内调用addJavaScriptInterface()
而不是在onCreate()回调中执行此操作,这对我来说解决了这个问题。
PS:方法链接不是一个好的做法。
请更新config.xml
偏好name="android-minSdkVersion" value="16"
到偏好name="android-minSdkVersion" value="17
和使用导入org.xwalk.core.JavascriptInterface;
使用 Cordova 版本 6.3.0 或更高版本
相关文章:
- '图片'没有用于本机道具的propType'RCTImageView.overlayColor&
- 在iOS和Android上使用React native时,我还能使用本机第三方lirbraries吗
- javascript函数访问ios本机功能
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 在浏览器中检测本机或第三方PDF插件
- 将事件发送到javascript文档的react本机模块是否正确
- 将对应用内购买的支持构建为react本机代码
- 如何在Windows上用javascript构建本机应用程序
- 在视图中渲染多个按钮以编程方式进行本机反应
- 在本机挂钩之前加载可安装挂钩
- 如何使用UI Automation JavaScript Reference for iOS appium获取本机应用程
- 控制台中的“function floor(){[本机代码]}”是什么
- react本机AES加密匹配Java解密算法
- 从本机 java 代码调用 JS 事件
- 如何从本机 Java 代码调用 JS
- 在Phonegap(Java Android)中运行本机代码
- 使用 cordova-plugin-crosswalk-webview 从 JS 调用本机 Java 代码
- 如何处理JavaScript中的异常,如果在执行本机java API时抛出任何异常
- 从浏览器运行本机java应用程序
- Java和chrome扩展,本机消息