2

Android の localstorage に関する 2.6 のバグが原因で、プロジェクトを Cordova 2.6 から 2.7 にアップグレードしました。さて、ページ読み込み時に、3 つのわずかに異なる方法で、この機能が表示されます。

ここに画像の説明を入力

[OK] をクリックすると、ページがクラッシュします。それはこれから来ているようです:

module.exports = {
  exec: function(service, action, callbackId, argsJson) {
    return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId]));
  },
  setNativeToJsBridgeMode: function(value) {
    prompt(value, 'gap_bridge_mode:');
  },
  retrieveJsMessages: function() {
    return prompt('', 'gap_poll:');
  }
};

どうすればこれを防ぐことができますか?

編集: Android 自体では発生していないようですが、Chrome では発生しており、このアプリケーションは両方で動作します。

4

1 に答える 1

0

Chrome のみのディストリビューションに Cordova スクリプトを含める必要はないと思います。このアラートが表示されるのは、Cordova for Android が内部的にalert()メカニズムを使用して、Cordova アプリの JavaScript 部分とネイティブ コード部分の間でイベントを渡すためです。Chrome 経由でアプリを表示すると、Cordova の残りの部分 (ネイティブ部分) が実際にセットアップされることはないため、アラートはキャプチャされず、代わりに実際に Chrome ブラウザーに表示されます。

あなたが開発しているアプリケーションが Chrome と Android の両方で動作する場合 (Cordova 経由でネイティブの .apk にパッケージ化していると思いますか?)、Cordova を何に使用しているのか理解に苦慮しています... Cordova が提供するネイティブ デバイス機能 (カメラ アクセス、加速度計など) を使用しておらず、ネイティブ シェルで Web アプリをラップするために使用しているだけの場合、(Chrome 用に) 開発してリリースする方が簡単な場合があります。ウェブアプリも...ウェブアプリです。

Cordova の主な利点の 1 つは、ネイティブ アプリケーションの形での配布の可能性がはるかに大きいことだと思います。これが計画されている場合は、Chrome でテストしている間はアラートを無視してください。ネイティブ アプリ (Cordova 経由) と Web アプリをリリースする予定がある場合は、Web アプリの運用バージョンから Cordova スクリプトを削除するだけです。

于 2013-09-06T15:38:45.043 に答える