如何在Ripple中使用Sqlite运行PhoneGap应用程序?

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

  • 我使用正确的插件吗?
  • 这是使用插件和纹波运行的cordova/device tu的正版版本?
  • 我是否必须在我的项目中包含cordova.js

Hel将是非常贬值的,很长一段时间我都试图解决这个问题.先谢谢你.

Dav*_*den 6

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中完成所有工作.