2

我在 PhoneGap 和 PhoneGap Build 中使用 iframe 进行构建。是否可以访问 PhoneGap 功能,例如 iframe 内的相机功能?

谢谢!

4

2 回答 2

2

是的,很有可能。

您的问题是由主窗口和 iframe 窗口之间的冲突引起的。

请参考此链接: https ://github.com/phonegap/phonegap/wiki/iFrame-Usage

我已经使用cordova plugin contact android成功实现了这一点。

为此,您需要执行以下操作:

  1. 使用postMessage创建父窗口和子/iframe 之间的通信。父母和孩子互相倾听。
  2. 将消息从子/iframe 发送/触发到父级以调用cordova 插件。
  3. 从父窗口调用 cordova 插件。
  4. 父窗口中创建要从cordova代码/端调用的全局函数(android中的Java)。
  5. 找出cordova中的java文件(调用回调函数并解析结果)。线索:callbackContext.success(parameter); . 从这里,我们需要调用在父窗口中创建的全局函数。
  6. 从cordova的java文件中调用在父窗口中创建的全局函数。这是从java代码调用js代码的片段:

your_web_view .loadUrl("javascript: function_name ( parameter_result_from_cordova )");

  1. 使用 postMessage 将在父级中获得的消息发送回 iframe/子级。

这应该有效。如果您发现任何问题,请告诉我。

于 2014-12-29T00:21:22.787 回答
1
  • 历史并没有按照它应该的方式运作。history.back() 和 history.forward() 不起作用,我们必须破解它(使用历史状态)以使其工作(排序)。我们可以通过将 usePolling 属性设置为 true 来绕过它。

  • 所有内容(URL、事件等)的主窗口和 iframe 窗口之间的冲突

  • 在 iframe 内容中选择文本的能力存在问题;我相信 Anis 找到了解决方案/解决方法。

  • 不能使用 XmlHttpRequests 设置文档数据(它与 CSS/js 等混淆)。

继续阅读:https ://github.com/phonegap/phonegap/wiki/iFrame-Usage

于 2013-08-18T11:50:00.903 回答