0

我现在使用 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 桌面?

谢谢。

很抱歉这篇长篇文章,只是试图更精确。

4

2 回答 2

0

这里的问题有两个方面。首先,您需要知道 Scandit Barcode Scanner 插件使用本机代码,因此不能在 Phonegap Developer 应用程序中使用,因为唯一传输给它的是您的 html/css/javascript 和插件的 javascript 部分. 要包含插件的本机部分,您必须自己构建和部署项目。当您尝试构建 XCode 项目时,您似乎正在这样做。

第二部分是您使插件的添加过于复杂。您无需手动克隆 git 存储库、添加我们的库、调整 plugin.xml 中的路径等。您可以直接从您在 scandit.com 的帐户中以 zip 格式下载整个插件,其中包含库和plugin.xml 是正确的。之后,您可以简单地通过 CLI 将插件添加到您的项目中(另请参阅我们在http://docs.scandit.com/stable/phonegap/cordova-integrate.html上的文档),无需执行任何操作手动,除非您使用的是非常过时的 Phonegap 版本,无法正确处理 plugin.xml。使用我们正确准备的插件 zip 自动执行此操作将删除大多数错误源,请尝试以这种方式。

于 2016-10-04T07:43:29.133 回答
0

谢谢@moritzha。它帮助我找到了解决方案。我一开始就关注了这个文档,但它没有用。添加插件并构建应用程序后,我从未设法在我的 xcode 项目中看到它。

我借此机会更换了我的 mac,从头开始重新启动所有内容,经过多次尝试,我发现我错了。事实上,scandit 提供的文档缺少一个步骤。

命令“ phonegap plugin add <path to download and unzipped plugin > ” 完成了一半的工作。

该命令将插件文件正确复制到我的项目中,但没有更新 config.xml。因此,在构建应用程序之前,您必须编辑位于项目文件夹根目录的 config.xml。您需要使用以下内容手动引用插件:并将 x 替换为您将使用的 sdk 版本。

一旦 config.xml 更新,您将能够为您的目标平台构建应用程序。

我现在拥有自己的 Phonegap 开发者应用程序版本,它使用 Scandit 插件代替了默认的条形码扫描仪插件。而且效果很好。这个插件太棒了!

PhoneGap Developer App 版本:1.7.2(取自 Github)

于 2016-10-13T15:53:29.967 回答