0

jquerymobile でほぼ完全に構築された phonegap ベースの mobileweb アプリケーションを構築しています。

いくつかのページに外部サイトへのリンクがあり、クライアントは、ユーザーがアプリを離れて外部サイトに移動するかどうかを尋ねるポップアップを表示したいと考えています。クライアントはまた、ユーザーがリンクをたどることを選択した場合、アプリケーションを終了するよう求めました。

これが私のJSです:

if (typeof CORP == "undefined" || !CORP) {
  var CORP = {};
}

(function() {
      CORP.mk = {
            var mobile = false;
            init: function() {
                        $("[data-role='page']").on("pagebeforeshow", CORP.mk.setHandlers);
            },
            onDeviceReady: function () {
                  CORP.mk.mobile = true;
                  document.addEventListener("pause", CORP.mk.onPause, false);
            },
            onPause: function () { // Exit the app if it goes to background
                  navigator.app.exitApp();
           },
          setHandlers: function () {
             if ( CORP.mk.mobile ) {
                    $("a[rel='external']").click(function (e) {
                        e.preventDefault();
                        CORP.mk.externalLink = $(this).attr("href");
                        alert(CORP.mk.externalLink);
                        navigator.notification.confirm("You are about to close this mobile app and open your web browser.",
                                            CORP.mk.popupConfirm,
                                            "Close This App?");
                    });
             }
          }
      };
})():
$(document).bind("pageinit", CORP.mk.init);
document.addEventListener("deviceready", CORP.mk.onDeviceReady, false);

ここに私のマークアップがあります:

<a rel='external' data-ajax='false' href='http://www.google.com'>googly</a>

CORP.mk.mobile問題: Chrome デスクトップ ブラウザでこのコードを無視してテストしたところ、問題なく動作しました。ただし$(this).attr("href");、常にinまたはに戻り'#'、phonegap で外部アプリケーションを起動できません。実際のリンクを取得して外部アプリを起動できるようにしたい。多くの組み合わせを試しましたが、解決策が見つかりませんでした。洞察に感謝します。hrefAndroidIOS

4

1 に答える 1

0

最後に問題を見つけました。これはe.preventDefault();、リンクが置き換えられているために発生しています。これがデスクトップブラウザで起こらないことに驚いています..だから、代わりに

e.preventDefault();
CORP.mk.externalLink = $(this).attr("href");

私はする必要があります

CORP.mk.externalLink = $(this).attr("href");
e.preventDefault();
于 2012-07-25T02:54:14.860 に答える