如何在 iOS 中使用自定义 phonegap 3.3 插件

Posted

技术标签:

【中文标题】如何在 iOS 中使用自定义 phonegap 3.3 插件【英文标题】:How to use custom phonegap 3.3 plugin in iOS 【发布时间】:2014-01-27 05:33:00 【问题描述】:

我已经在 phonegap 2.9 中使用了 phonegap 插件 (SQLitePlugin),但现在我想将我的项目转换为 phonegap 3.3, 我已经按照说明进行操作,但是从 javascript 调用插件时遇到问题。它总是说:未定义不是一个对象(评估'window.sqlitePlugin.openDatabase');

请帮忙,谢谢。

已编辑:我已经让它工作了,即将 SQLitePlugin.js 复制到 www 文件夹并在 index.html 中写入脚本标签,

但我很好奇,因为根据这篇文章,它说我们不必复制js文件,也不需要编写脚本标签。

已编辑:正确的解决方案是,在使用 plugin add 命令添加插件后,您必须使用 phonegap build ios 命令再次重建您的项目。

http://www.raymondcamden.com/index.cfm/2013/9/6/Working-with-Plugins-in-PhoneGap-30

此时我的假设是将所有 JS 文件复制到我的 www 文件夹中,并将脚本标签添加到我的 index.html。

没必要!

在 3.0 中(见脚注),构建过程不仅处理复制 Java 文件,它 > 复制 JavaScript 并将其注入到您的 HTML 中。基本上,我不必做 HTML 方面的任何特殊内容都可以使用我的插件。太牛了!但我希望我 早就知道了。您可以在 deviceready 触发后开始使用该插件:

【问题讨论】:

记得在 config.xml 中添加 标签和插件定义吗? 发布你的代码也可能有问题 window.SQLitePlugin.openDatabase 而不是 window.sqlitePlugin.openDatabase 在 3.x 版本中,当我们使用 plugin add 命令时,会自动添加 标签。 发生了什么为什么取消我的答案 【参考方案1】:

我必须对现有应用程序进行哪些更改? 不多。

只需将“window.openDatabase”替换为“window.sqlitePlugin.openDatabase”即可。

别忘了看看 Windows Phone 插件的限制。

如何安装 SQLite 插件

有很多可用的 SQL 插件。我选择“lite4cordova”,因为它支持 Cordova 3.x,安装方便,还在开发中。

https://github.com/lite4cordova/Cordova-SQLitePlugin

https://github.com/lite4cordova/Cordova-SQLitePlugin-WP-2013.12

第二个项目是“Cordova-SQLitePlugin”的扩展,因为 Windows Phone 尚未开发“Cordova-SQLitePlugin”。

此链接更有用http://tol8.blogspot.in/

检查您的打开数据库选项

打开数据库有两种选择:

Recommended: var db = window.sqlitePlugin.openDatabase(name: "DB");
Classical: var db = window.sqlitePlugin.openDatabase("Database", "1.0", "Demo", -1);

more details

【讨论】:

【参考方案2】:

您必须在字典 PLUGINS 下的 Cordova.plist 中添加您的插件 KEY/VALUE 对,这样您的 ios 代码就会知道您指的是哪个类!

【讨论】:

以上是关于如何在 iOS 中使用自定义 phonegap 3.3 插件的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap 3.x / iOs6 iOs7 / AngularJs - 插件对象不适用于自定义 www/index.html 位置

在 iOS 中使用 Phonegap Canvas 自定义字体

如何使用自定义插件测试 iPhone PhoneGap 应用

在 iOS 中使用 PhoneGap HTML 自定义 JavaScript 提示

如何在自定义地图上进行离线地理定位,phonegap+kml

自定义 PhoneGap 插件 (iOS) 功能问题