cordova 开发安卓项目 解决html 放到服务器上无法调用插件的问题
原创
上树看风景2016-07-29 23:56:43著作权
©著作权归作者所有:来自51CTO博客作者上树看风景的原创作品,如需转载,请注明出处,否则将追究法律责任
https://blog.51cto.com/u_11911270/1831926
cordova2.9 版本开发很简单将需要的js和html 放到服务器上 直接调用cordova 提供的插件函数就可以调用, 从3.x 版本之后 机制发生了很大的变化, cordova 不在预设插件函数 所有的插件需要自己去安装 cordova plugin add 网络地址或自己写的插件本地路径 就可以添加插件。 具体怎么添加网上有教程。今天解决的问题是,3.x之后版本 html5 和app 一起打包可以调用插件,但是放到服务器上远程调用就不起作用。
在导入的CordovaLib工程下找到org.apache.cordova.CordovaBridge 类
找到:
public boolean shouldAllowBridgeAccess(String url) {
for (PluginEntry entry : this.entryMap.values()) {
CordovaPlugin plugin = pluginMap.get(entry.service);
if (plugin != null) {
Boolean result = plugin.shouldAllowBridgeAccess(url);
if (result != null) {
return result;
}
}
}
// Default policy:
return url.startsWith("file://");
}
把方法中的按照以下注掉
//if (pluginManager.shouldAllowBridgeAccess(origin)) {
// Enable the bridge
int bridgeMode = Integer.parseInt(defaultValue.substring(9));
jsMessageQueue.setBridgeMode(bridgeMode);
// Tell JS the bridge secret.
int secret = generateBridgeSecret();
return ""+secret;
//} else {
// Log.e(LOG_TAG, "gap_init called from restricted origin: " + origin);
//}
//return "";
重新发布运行 就可以使用服务器上的js调用cordova插件了。
赞
0收藏
评论