【发布时间】:2013-05-29 03:17:16
【问题描述】:
我想使用 Worklight 在远程 HTML 页面 (http://xxx.com) 中调用 phonegap API(例如相机、文件 API)。
我尝试使用 (1) iFrame 和 (2) 嵌入 WebView。
(1) iFrame
<iframe src="http://xxx.com"></iframe>
google了一阵子,据说是同源政策不会成功。相反,它可以通过 HTML postMessage 来实现。我做了一个简单的测试,它可以工作。
但是,对于我的用例,我想在远程 HTML 页面中执行文件上传。使用相机 API 拍摄照片后,我得到了一个 FILE_URI / DATA_URI。除了在那里使用 File API 之外,我无法在远程 HTML 页面中上传文件。因此,我的目标是直接在远程页面调用phonegap API,这是我的下一步。
(2) 嵌入WebView
我尝试在 Android 原生代码中添加webview.loadUrl("http://xxx.com")
public class TestActivity extends DroidGap {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = (WebView) findViewById(R.id.wv);
webview.loadUrl("http://www.xxx.com");
}
}
在我的远程 HTML 页面中,我添加了
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert("OK!");
}
</script>
测试 phonegap API 是否可以使用。
但是,onDeviceReady 永远不会被触发。
这里有什么问题吗?或者是否可以访问嵌入在 webview 中的远程 HTML 页面中的 phonegap API?
【问题讨论】:
-
嗨,你有没有找到嵌入 WebViews 的解决方案??
标签: android iframe webview cordova ibm-mobilefirst