Lau*_*bet 4 sqlite ripple phonegap-plugins cordova
我有一个带有sqlite插件的phongap应用程序,可以在android和iphone中运行.当我尝试在Ripple中运行它时,我会得到几个错误,具体取决于我使用的cordova版本和设备.他们中的任何人都没有工作.在stackoverflow的一些评论中,我看到人们在涟漪下的phonegap中运行sqlite.
我在我的项目中使用了 PG-SQLitePlugin-Android插件,它实际上只支持Phonegap 2.7.0+.
我发现我可以通过调用它来强制Ripple使用2.7.0:
文件://localhost/Users/----/----/----/www/index.html enableripple =科尔多瓦-2.7.0
在通过chrome访问文件系统后,Ripple实际上加载了很多.
当我在我的脚本中包含cordova-2.7.0.js时
index.html弹出一个弹出窗口,其中包含以下文本:
间隙: "设备", "getDeviceInfo", "Device119187522"]
我可以接受或取消,然后再出现2个对话框,如果我接受它会被绞死.
js控制台显示cordova 2.7.0真正运行:
由于缺少_cordovaNative,因此退回PROMPT模式.预计仅适用于Android 3.2及更低版本.科尔多瓦-2.7.0.js:906
deviceready没有被解雇
当我在我的脚本中包含cordova-2.9.0.js时
它与2.7相同
由于缺少_cordovaNative,因此退回PROMPT模式.预计仅适用于Android 3.2及更低版本.科尔多瓦-2.7.0.js:906
但这次我得到了其他错误
无法加载资源文件://localhost/Users/laullobetpayas/-------/---/------/www/cordova/cordova_plugins.json无法加载资源文件:// localhost /用户/ -------/---/---/WWW /科尔多瓦/ cordova_plugins.js
deviceready没有被解雇
当我的脚本中没有包含任何cordova.js时
SQLitePlugin.js:31未捕获的ReferenceError:未定义cordova SQLitePlugin.js:34
Hel将是非常贬值的,很长一段时间我都试图解决这个问题.先谢谢你.
Phonegap插件不适用于Ripple,因为Phonegap插件的想法是它提供了一个Javascript接口以执行本机代码.这意味着,在Android的情况下,Javascript将调用本机Java代码,在iOS的情况下,Javascript将调用本机Objective-C.
Ripple纯粹是基于Javascript的,所以插件的Javascript部分没有任何东西可以与之接口.
例如,在SQLitePlugin的情况下,调用调用中的SQLitePlugin.close()结果:
cordova.exec(null, null, "SQLitePlugin", "close", [this.dbname]);
Run Code Online (Sandbox Code Playgroud)
其中SQLitePlugin是本机类名称,close是本机函数名称.
如果您想在Android,iOS 和 Ripple中使用相同的存储API ,可以考虑使用带有适当适配器的草坪椅.
至于Ripple和Phonegap 2.7.0/2.9.0的问题,Ripple还没有赶上Phonegap,所以你会在控制台中获得这些弹出窗口和错误消息,但这不会阻止你的Phonegap应用程序(没有本机插件) )在Ripple中运行.您可以通过一个简单的测试用例来说服自己:
document.addEventListener("deviceready", function(){
alert("I'm alive");
});
Run Code Online (Sandbox Code Playgroud)
但答案是肯定的,你确实需要包含cordova.js才能在Ripple中完成所有工作.
| 归档时间: |
|
| 查看次数: |
5310 次 |
| 最近记录: |