我有一个带有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/Users/-------/---/------/www/cordova/cordova_plugins.js
deviceready未被解雇
我的脚本中没有包含任何cordova.js
SQLitePlugin.js:31 未捕获的ReferenceError:cordova未定义SQLitePlugin.js:34
Hel会非常贬值,很长一段时间我都试图解决这个问题。 先谢谢你。
答案 0 :(得分: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]);
其中SQLitePlugin
是本机类名,close
是本机函数名。
如果您想在Android,iOS 和 Ripple中使用相同的存储API,可以考虑将lawnchair与适当的适配器一起使用。
至于Ripple和Phonegap 2.7.0 / 2.9.0的问题,Ripple还没有完全赶上Phonegap,所以你会在控制台中获得这些弹出窗口和错误消息,但这不会阻止你的Phonegap应用程序(没有本机插件)在Ripple中运行。您可以通过一个简单的测试用例来说服自己:
document.addEventListener("deviceready", function(){
alert("I'm alive");
});
但答案是肯定的,你确实需要包含cordova.js才能在Ripple中使用它。
答案 1 :(得分:2)
Cordova-SQLitePlugin是HTML5 SQL API的替代品,因此当在Ripple中运行时,您不需要调用Cordova层,只需用窗口替换对sqlitePlugin.openDatabase()的调用即可。的openDatabase()。我还没有用Ripple测试它,但它应该工作。有一些数据库大小限制,但这可能只是您测试所需的全部内容。
有several ways来测试你的内部Cordova。您可以根据应用启动时对Cordova的测试为openDatabase()方法创建一个垫片。
答案 2 :(得分:0)
由于您的主要目标是使用Cordova快速测试SQLite(而不是专门使用Ripple),我想建议使用Ripple的另一种新选择。
我编写了一个应用程序调用{{3}},可以用来快速开发Cordova / HTML5应用程序,只需更新您的文件,即可在移动设备上实时编辑和调试HTML / JS / CSS代码开发计算机 - 因此您可以跳过大多数重新编译/重新部署/重新启动调试器的时间成本。它有很多其他很酷的功能。我自己用它来进行SQLite应用程序测试而不是Ripple或Weinre
它基于Adobe PhoneGap开发者应用程序的代码,因此核心代码经过了充分测试。它已经针对Sench Touch框架进行了广泛的调整和调整,尽管它也适用于jQuery Mobile或任何将HTML5代码放在phonegap/www
或cordova/www
文件夹下的框架。只需在PhoneGap或Cordova项目文件夹中启动服务器。
为了测试您的SQL和控制器逻辑,我建议将Installation Guide模拟器与Android 4.4.x KitKat版本一起使用。在您的桌面上启动最新版本的Chrome,一旦您的应用在模拟器或真实设备上运行chrome://inspect
,现在您可以在远程设备应用上使用完整的Chrome调试器。您还可以使用最新版本的Safari进行OSX / iPhone模拟器测试。
您可以在这里观看演示(从5分钟开始)。是!它需要一个更精美的视频,回声越少,但你会明白这一点: