0

在我的 PhoneGap + Wikitude 应用程序中,我有 PhoneGap 的标准 index.html 和 index.js 文件,它们启动了我的 Wikitude 世界 myWorld.html。

在 myWorld.html 中,我需要文件系统和 FileTransfer。我在 myWorld.html 中正确引用了 PhoneGap JavaScript 文件。

<script type="text/javascript" src="../../../www/cordova-2.5.0.js"></script>在此处输入图像描述

我正在尝试这两个电话,但没有任何运气:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fsSuccess, fsFail);

var ft = new FileTransfer();

我知道WikitudePlugin.callJavascript()(也请参阅此问题)从 PhoneGap 中调用 Wikitude 世界中的 Javascript,但是:

  • 我知道使用callJavascript(),我只能将文本参数传递给我的维基世界。
  • 当然,必须有一种方法可以从 Wikitude 世界 HTML 中调用 PhoneGap 功能,因为 cordova.js 只不过是一个 JavaScript 文件?

如何在我的 Wikitude 世界中获得对 fileSystem 和 FileTransfer 对象的引用?

4

1 回答 1

1

不幸的是,PhoneGap 不仅仅是一个 JS 文件,它还扩展了具有原生平台特性的 JS 特性集。通常phonegap 插件被简化为非常简单的操作,例如发送SMS,例如Wikitude 插件使用传感器,甚至分析cam-frames 以应用ImageRecognition 算法。

尽管 Wikitude 的 ARchitect 技术也使用 JS/HTML,但这并不意味着您可以将它们组合起来那么容易。AR-View 在完全不同的上下文中运行,是 phoneGap 主 Activity 之上的一个 View。在cordova 和Wikitude 之间交换数据的唯一方法是使用“document.location = architectsdk://...”和architectView.callJavascript。

我建议您在 Cordova 环境中处理任何文件读取,并使用 callJavaScript(EgAnyJSONObject) 将所有数据传递给 Wikitude 的 SDK。

希望有帮助。

亲切的问候,安德烈亚斯

于 2013-05-10T14:15:54.807 回答