9

アプリにはたくさんのリンクがあります。それらすべてに追加rel='external' target='_blank'しました。

Ripple エミュレーターまたは通常のデスクトップ ブラウザーでは、これはうまく機能します。しかし、私の Android (JB 4.2.2) では、同じウィンドウでリンクが開きます。「戻る」を押すとアプリに戻りますが、物理的にリロードするまで、すべてがうまくいかず、アプリが計画どおりに機能しません (スクリプト イベントが反応しません)。

リンクがデバイスのブラウザで開かれるようにするにはどうすればよいですか? Cordova プラグインを使用する必要がありますか?

(Cordova 2.9.0、jQuery 1.10.1、jQuery Mobile 1.3.1 を使用しています)

4

5 に答える 5

3

ユーザーが iOS のアプリに戻った後も、Jason Farnsworth の回答がデフォルトのアクションを実行するという問題がありました。そのため、彼のコードを少し調整した後、次のようになり、期待どおりに動作しました。

$(document).on('click', 'a', function (e) {
   var elem = $(this);
   var url = elem.attr('href');
   if (url.indexOf('http://') !== -1) {
       e.preventDefault();
       window.open(url, '_system');
       return false;
   }
});
于 2014-07-02T18:42:31.683 に答える
0

私は何年にもわたって正しい答えを探してきましたが、すでに与えられた答え以外の別の方法でこれを修正することができました。

まず第一に、新しいバージョンの Android でいくつかのメソッドを使用すると、古いバージョンの Cordova が壊れてしまうようです。Cordova を最新バージョンに更新すると、現在のプロジェクトで移行の問題が発生する可能性がありますが、更新する価値はあります。2.8 から Cordova 5.0 に更新されたので、コードを変更するのに約 30 分かかりました (わずかな修正が必要です)。その後、再構築、展開、および起動に成功しました。古いバージョンの Cordova で、戻るボタンを押すとアプリがクラッシュしました。新しいバージョンでは、同じコード行で魔法のように機能しました。簡単に言うと、cordova を更新し、必要に応じていくつかの行を変更して、美しさを再構築します。

これが私のように苦労しない日々からあなたを助けることを願っています.

于 2015-06-01T07:17:31.057 に答える