3

ローカル マシンと PhoneGap Build クラウド サービスで PhoneGap 2.2.0 ビルドを作成しようとすると、backbone.js ルーターが失敗するようです。

これは、タッチ イベントが明らかにトリガーされているにもかかわらず、アプリの内部リンクとナビゲーションがまったく機能しないことを意味します。

私のアプリは、Chrome と iOS エミュレーターを介してローカルで、この時点まで完全に機能していました。jQuery Mobile と backbone.js ルーターとの競合について多くの情報を見つけることができますが、jQuery 1.8.2 を使用しています (以前のバージョンの 1.7.0 から 1.8.2 でもテストしました)。

Xcode コンソールで、内部リンクをクリックすると、「エラーで Web ページを読み込めませんでした: フレームの読み込みが中断されました」というエラーが表示されます。アプリ内の内部リンクに「/#link」形式を使用しています。

これは、私が設定したバニラ PhoneGap Xcode プロジェクトの iOS/Xcode セキュリティ機能の一種ではないでしょうか? しかし、これを許可するために変更できる設定はありますか?

4

3 に答える 3

0

このルーターをバックボーンとJQMで使用すると、変化を監視するのではなくJQMイベントを使用するため、より多くの成功を収めることができます。

https://github.com/azicchetti/jquerymobile-router

于 2012-12-04T18:52:26.160 に答える
0

かなりの試行錯誤の末に回避策を見つけたので、私は自分の質問に答えたほうがいいです。今すぐ答えようと思いますが、後で戻ってきて改善してください。基本的に、マークアップに埋め込まれた標準リンクを使用するのではなく、

<a id="myLink" href="/#link">my link</a>

機能をリンクにバインドし、Backbone.jsルーターを次のように使用する必要があります。

$('#myLink').tappable(function(event){
    event.preventDefault();

    var url = $(this).attr('href');
    application.router.navigate(url, true);

    return false;
});

私の場合、UIの応答性を向上させるために、すでにjquery.tappable.jshttp : //aanandprasad.com/articles/jquery-tappable/を使用していました。

それ以来、この方法でそれを行うことの別の利点を見つけました。それは、1ページのWebアプリが別のサイトのサブフォルダーでホストされている場合です。アプリにBackbone.jsルーターの使用を強制することで、相対パスが内部リンクを切断する問題が発生しなくなります。

テスト中に問題がなく、Phonegapに一度だけ準拠したのは、Safariモバイルで(ホーム画面のブックマークを介して)実際にテストしていたためだと思います。一度準拠すると、それはWebビューにありました。ネイティブiOS開発者はこれを説明できるかもしれません。

于 2013-03-21T17:00:56.670 に答える
0

友達。私はanthorの方法を試してみましたが、うまくいきました。スプラッシュリンクを削除するだけです

于 2015-04-27T12:38:09.713 に答える