您的位置:首页 > Web前端 > HTML

cordova 开发安卓项目 解决html 放到服务器上无法调用插件的问题

2016-07-29 23:56 716 查看
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插件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息