バックグラウンド
Cordova 2.0 でビルドされた iOS アプリをバージョン 2.7にアップグレードしようとしています。
これは基本的に、リモート検索エンジンを指すウェルカム画面です (アプリの有効性と承認の可能性についてのコメントは控えてください。それは過ぎているためです)。 Cordova の Web ビューでユーザーをトラップします。
Cordova 2.7 には、 ChildBrowser の代わりに使用したいと考えているInAppBrowserという機能があります。InAppBrowser は、Safari で開くボタンがないことを除けば、基本的に同じことを行います。
問題
既存のアプリのリモート Web ページには、Cordova JS (および ChildBrowser プラグイン用のもの) が含まれており、サブ ブラウザーでリンクを開くのに問題なく動作します。
私のテスト用 Cordova 2.7 アプリは、リモート Web ページからロードされているときに、Cordova JS を正しくロードしていないようです。
埋め込みスタート ページとリモート スタート ページで、まったく同じ HTML を使用してみました。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://mydomain.com/mobile/cordova-2.7.0.js"></script>
</head>
<body>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert("Ready!!");
}
</script>
</body>
</html>
これを埋め込み開始ページとしてテストするために、次の行を に入れましたconfig.xml
。
<content src="index.html" />
アプリを実行すると、すぐに「Ready!」が表示されます。アラート。
これをリモート スタート ページとしてテストするには (最終的なアプリでリモート ページにリンクすることを目指しています。テスト用のスタート ページとして使用しているだけです。埋め込みページからリンクしても結果は同じです。) 、私はこの行を入れましたconfig.xml
:
<content src="http://mydomain.com/mobile/index.php" />
アプリを実行すると、空白の画面が表示され、アラートは表示されません。
さらにcordova-2.7.0.js
L.6255では、
console.log('deviceready has not fired after 5 seconds.');
に
alert('deviceready has not fired after 5 seconds.');
この変更により、リモート スタート ページを使用してアプリを実行すると空白のページが表示され、5 秒後に「deviceready has not fired after 5 seconds.」というアラートが表示されます。これは、Cordova JS が正しく起動していないことを示しています。言うまでもなく、リモート サイトのサブ ブラウザで InAppBrowser にリンクを起動させることはできませんが、埋め込まれたスタート ページでは問題なく動作させることができます。
ここからどこへ行くべきか考えている人はいますか?これは非常に単純な例なので、これは Cordova の設定の問題か、機能の変更であると想定しています。ご意見ありがとうございます。