Wikitude Cordova插件 - 处理Android和iOS错误

时间:2017-08-02 07:49:52

标签: wikitude wikitude-sdk

Wikitude Cordova插件用于在我们基于cordova的应用程序中创建自己的增强现实。但是在添加插件并遵循官方示例后,应用程序失败了,

  • 在android中,app.wikitudePlugin.isDeviceSupported因错误而失败,

      

    Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference

  • 在iOS中,应用程序因错误而崩溃,

      

    This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

有没有解决方法。如何解决Android和iOS问题?

1 个答案:

答案 0 :(得分:0)

Wikitude Cordova插件

Wikitude是一个增强现实引擎。 Wikitude Cordova Plugin是Cordova的增强现实SDK,可将增强现实体验嵌入到基于PhoneGap和Cordova的应用程序中。

注意:本文档适用于com.wikitude.phonegap.wikitudeplugin v 6.1.0 其他版本未经过测试

1。将插件添加到您的应用

打开控制台并转到项目目录并运行cordova插件添加命令

$ cordova plugin add https://github.com/Wikitude/wikitude-cordova-plugin.git

这会将插件添加到您的应用程序中。

运行cordova prepare以使项目准备好按照 config.xml

进行构建

2。输入Wikitude许可证密钥

转到License Page并下载Wikitude SDK的个人许可密钥。

要将Wikitude Cordova插件与特定许可密钥一起使用,请使用 WikitudePlugin.js 13中定义的this._sdkKey属性

  

插件\ com.wikitude.phonegap.WikitudePlugin \ WWW \ WikitudePlugin.js

3。 Android:处理Wikitude插件错误

在android中,app.wikitudePlugin.isDeviceSupported可能会因错误而失败,

  

尝试在空对象引用上调用虚方法'int org.json.JSONArray.length()'

通过向 WikitudePlugin.java

中的数组添加空检查来处理错误
  

插件\ com.wikitude.phonegap.WikitudePlugin \ SRC \机器人\ WikitudePlugin.java

第755行: if(jsonArray != null){}

添加空检查for (int i = 0; i < jsonArray.length(); i++) {}

4。更新平台

运行以下命令以使用Wikitude插件中所做的更改来更新平台。它将删除并添加平台。

cordova platform remove android cordova platform add android cordova platform remove ios cordova platform add ios

5。 iOS:允许CameraUsage

在iOS中,应用可能会因错误而崩溃,

  

此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其字符串值向用户解释应用程序如何使用此数据。

使用PlistBuddy修改应用的plist文件。

从Mac

运行以下命令

$ /usr/libexec/PlistBuddy -c "Add :NSCameraUsageDescription string 'Access to the camera is needed to display augmented reality content on top of your camera image.'" "platforms/ios/"${PROJECT_NAME}"/"${PROJECT_NAME}"-Info.plist"

或者您可以手动将以下条目添加到platforms/ios/"${PROJECT_NAME}"/"${PROJECT_NAME}"-Info.plist

  

NSCameraUsageDescription   需要访问相机才能在相机图像上显示增强现实内容。

6。创建自己的增强现实体验

可以在Wikitude SDK Cordova documentation中找到创建自己的增强现实体验的步骤。

可以在GitHub上找到使用Wikitude SDK可以完成的代码示例。此外,可以在GitHub上找到示例Wikitude Cordova插件。

isDeviceSupported函数requiredFeatures是可选的。但是如果不提供它,该应用程序将不适用于iOS。所以一定要提供它。

requiredFeatures: [ "2d_tracking", "geo" ], ... app.wikitudePlugin.isDeviceSupported(app.onDeviceSupported, app.onDeviceNotSupported, app.requiredFeatures);

7。建立项目

运行以下命令以将项目构建到特定平台 cordova build android cordova build ios

有关构建应用的详细信息,请参阅Cordova documentionsAndroid Platform GuideiOS Platform Guide

注意:每次构建都需要#7。其余步骤仅在初始设置期间需要。

支持的设备

参考:https://www.wikitude.com/external/doc/documentation/latest/phonegap/supporteddevices.html

Android设备要求:
  • Android 4.0.3 +
  • 指南针
  • 加速度计
  • 高分辨率设备(hdpi)
  • 后置摄像头
  • OpenGL 2.0
  • 具有四核CPU或更高CPU的设备
支持的iOS设备:
  • iPhone 5或更新版
  • iPad(第4代)或更新
  • iPod Touch(第6代)或更新版

参考

Wikitude Cordova插件:https://www.wikitude.com/external/doc/documentation/latest/phonegap/

注意:

步骤#3解决了Android问题,步骤#5解决了iOS问题。

关注It’s OK to Ask and Answer Your Own Questions