Worklight を使用して、リモート HTML ページ ( http://xxx.com )で phonegap API (Camera、File API など) を呼び出したいと考えています。(1) iFrame と (2) WebView への埋め込みを使用しようとしました。
(1) iFrame
<iframe src="http://xxx.com"></iframe>
しばらくグーグルで調べたところ、同じオリジンポリシーのために成功しないと言われています。代わりに、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 にアクセスすることは可能ですか?