コードバ 2.6 と jqm 1.3 でビルドされた iOS/Android アプリがあります。ユーザーがボタンをクリックした後、外部 Web サイトへのリンクを開く必要があります。私が使用しているコードは次のとおりです。
var ref = window.open('http://google.com','_self','location=yes');
ref.addEventListener('loadstart',function(event) {
console.log('load started');
});
ref.addEventListener('loadstop',function(event) {
console.log('load stopped');
});
ref.addEventListener('loaderror',function(event) {
console.log('load error = ' + JSON.stringify(event));
});
iOS では、すべてが期待どおりに動作します。新しいブラウザ ウィンドウが開き、Google の Web サイトが読み込まれます。しかし、Androidにロードするものは何もありません。ボタンをクリックしても何も起こりません。window.open の前後にコンソール ステートメントを挿入したので、少なくともコードが実行されていることがわかります。
私の config.xml は、ホワイトリストに登録されたサイトに対して広く開かれている必要があります。
<access origin=".*"/>;
Nexus 7(android 4.2)とandroid 2.2エミュレーターでテストしましたが、両方で同じ結果が得られました。
Androidでwindow.openが正しく起動しない理由を知っている人はいますか?