我想使用 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
我试图添加webview.loadUrl("http://xxx.com")
Android本机代码
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?