如何将Scandit条形码插件添加到Phonegap开发人员ios应用程序的自定义构建中?

时间:2016-10-03 15:15:56

标签: custom-build phonegap-developer-app

我现在使用Phonegap Desktop和Phonegap Developer app。这对于快速测试我的开发非常有趣。 但我面临着嵌入式条形码扫描仪的局限性,该扫描仪全屏显示相机显示屏。 我需要将相机显示器嵌入容器中,这样我就可以在同一时间显示信息。

搜索了一段时间后,我发现用于PhoneGap的Scandit SDK是唯一允许裁剪相机显示的插件。

我花了很多时间尝试实现Scandit,但没有成功。至少我可以构建应用程序,但在使用它时,扫描仪无法正常工作......

以下是我遵循的步骤:

  • 从Git
  • 克隆PhoneGap Developer项目
  • 使用npm
  • 安装
  • 添加ios平台
  • 打开xcode项目文件
  • 构建应用程序并在设备上运行

=>这时PG Dev运行良好,我的应用程序运行正常

然后,我继续说道:

  • 删除对默认条形码扫描程序插件的所有引用
  • 构建应用程序并在设备上运行

==> PG Dev仍然正常工作,我的应用程序运行正常

后续步骤:

  • 从Git
  • 克隆Scandit phonegap插件
  • 从我的scandit帐户下载Scandit SDK
  • 将SDK放入克隆的scandit phonegap插件
  • 修改plugin.xml以更改bundle和framework的路径(路径中版本名称不匹配)
<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"/>
  • 将包和框架复制到scandit的正确文件夹
  • 修改config.xml以包含对Scandit的引用,并将spec attribut设置为SDK的版本
  • 构建应用程序并在设备上运行

==&GT; PG Dev仍然正常工作,我的应用程序工作正常(暂时不使用scandit)

后续步骤:

==&GT; PG Dev正常运行并下载Scandit Sample App。 但该应用程序不起作用。点击扫描按钮时,没有任何事情发生..

经过一番调查,我发现我在Scandit课上遇到了异常。 在命令'Scandit.License.setAppKey'上添加试一试允许我在PG Desktop日志中报告以下错误:

ReferenceError: Can't find variable: Scandit

添加此try / catch使应用程序在下一行引发异常:

var settings = new Scandit.ScanSettings();

在网上搜索我的错误后,有些帖子建议手动添加框架并捆绑到xcode中。

所以我通过拖放框架并将其捆绑到xcode项目的框架文件夹中来实现。

但是当我尝试构建我的项目时,它失败了许多错误...... 要解决这个问题,我必须手动将所有scandit插件文件(* .h和* .m)放入我的xcode项目中。

之前的所有错误都已解决,但新的错误已经出现。 这是由于一些其他缺少本机ios框架... 添加这些框架后,所有错误都得到了解决,我成功构建了应用程序。

但是在运行它时,我仍然有错误:“ReferenceError:找不到变量:Scandit”

我现在已经没想完了...... 我做错了什么? 是否有人设法构建了嵌入了Scandit的PG桌面?

感谢。

对于这篇长篇文章感到抱歉,只是试着让我更精确。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

我利用改变我的mac的机会从头开始重新启动所有东西,经过多次尝试,我发现了我错在哪里。 实际上,scandit提供的文档缺少一步。

命令&#39; phonegap插件添加&lt;下载和解压缩插件的路径&gt; &#39;正在做一半的工作。

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

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

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

PhoneGap Developer App版本:1.7.2(采用Github)