我现在使用 Phonegap Desktop 和 Phonegap Developer 应用程序有一段时间了。这对于快速测试我的开发非常有趣。但是我面临着嵌入式条形码扫描仪的限制,它全屏显示相机显示。我需要将相机显示嵌入到容器中,这样我就有空间同时显示信息。
经过一段时间的搜索,我发现 Scandit SDK for PhoneGap 是唯一允许裁剪相机显示的插件。
我花了很多时间尝试实现 Scandit,但没有成功。至少我可以构建应用程序,但是使用它时,扫描仪无法正常工作......
以下是我遵循的步骤:
- 从 Git 克隆 PhoneGap Developer 项目
- 使用 npm 安装
- 添加ios平台
- 打开xcode项目文件
- 构建应用程序并在设备上运行
=> 此时 PG Dev 运行良好,我的应用程序运行良好
然后,我继续说:
- 删除对默认条码扫描器插件的所有引用
- 构建应用程序并在设备上运行
==> PG Dev 仍然工作正常,我的应用程序工作正常
下一步:
- 从 Git 克隆 Scandit phonegap 插件
- 从我的 scandit 帐户下载 Scandit SDK
- 将 SDK 放入克隆的 scandit phonegap 插件中
- 修改 plugin.xml 以更改包和框架的路径(路径中的版本名称不匹配)
<resource-file src="src/ios/scanditsdk-community-ios_4.16.1/ScanditBarcodeScanner.bundle"/> <framework src="src/ios/scanditsdk-community-ios_4.16.1/ScanditBarcodeScanner.framework" custom="true"/>
- 将 bundle 和 framework 复制到 scandit 的正确文件夹中
- 修改 config.xml 以包含对 Scandit 的引用并将规范属性设置为 SDK 的版本
- 构建应用程序并在设备上运行
==> PG Dev 仍然工作正常,我的应用程序工作正常(它暂时不使用 scandit)
下一步:
- 从 PhoneGap 桌面删除我的项目
- 将 Scandit 示例项目添加到 PG 桌面我从那里使用了“连续缩放/裁剪”示例:http: //docs.scandit.com/4.12/phonegap/cordova-examples.html
- 为许可证添加我的 App Key
- 在我的设备上启动我的 PG Dev 应用程序并下载项目文件
==> PG Dev 运行良好并下载 Scandit 示例应用程序。但该应用程序不起作用。单击扫描按钮时,没有任何反应..
经过一番调查,我发现我在 Scandit 类上遇到了异常。添加对命令“Scandit.License.setAppKey”的尝试允许我在 PG 桌面日志中报告以下错误:
ReferenceError: Can't find variable: Scandit
添加这个 try/catch 使应用程序在下一行引发异常:
var settings = new Scandit.ScanSettings();
在网上搜索了我的错误后,一些帖子建议手动将框架添加到 xcode 中。
所以我通过将框架和捆绑包拖放到 xcode 项目的框架文件夹中来做到这一点。
但是当我尝试构建我的项目时,它因许多错误而失败......为了解决它,我不得不手动将所有 scandit 插件文件(*.h 和 *.m)放入我的 xcode 项目中。
所有以前的错误都已解决,但出现了新的错误。这是由于缺少其他一些本机 ios 框架......一旦添加了这些框架,所有错误都得到解决,我成功地构建了应用程序。
但是在运行它时,我仍然遇到错误:“ReferenceError:找不到变量:Scandit”
我现在没有主意了..我做错了什么?有没有人设法构建一个嵌入了 Scandit 的 PG 桌面?
谢谢。
很抱歉这篇长篇文章,只是试图更精确。