【问题标题】:Wikitude Cordova Plugin - Handle Android and iOS errorsWikitude Cordova 插件 - 处理 Android 和 iOS 错误
【发布时间】:2017-08-02 07:49:52
【问题描述】:

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 问题?

【问题讨论】:

    标签: wikitude wikitude-sdk


    【解决方案1】:

    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。输入维基许可证密钥

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

    要使用带有特定许可证密钥的 Wikitude Cordova 插件,请使用 WikitudePlugin.js 行中定义的 this._sdkKey 属性13强>.

    plugins\com.wikitude.phonegap.WikitudePlugin\www\WikitudePlugin.js

    3。 Android:处理 Wikiitude 插件错误

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

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

    通过向 WikitudePlugin.java

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

    plugins\com.wikitude.phonegap.WikitudePlugin\src\android\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 上找到使用 Wikiitude SDK 可以完成的代码示例。还可以在 GitHub 上找到示例 Wikiitude Cordova 插件。

    对于isDeviceSupported 函数requiredFeatures 是可选的。但是如果不提供它,该应用程序将无法在 iOS 上运行。所以请务必提供。

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

    7。构建项目

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

    有关构建应用程序的更多详细信息,请参阅CordovadocumentionsAndroid Platform GuideiOS Platform Guide

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

    支持的设备

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

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

    参考

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

    注意:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多