2012-01-13 10 views
1
私が使用して アンドロイドPhoneGapのアプリを開発しています

モバイル1.0マイアプリは4.0前に、すべてのAndroidのバージョンで完全に正常に動作1.3とjqueryののPhoneGap .0
4.0.0以降では、問題に直面しています。私は、ユーザーがクリックすると別の「ページ」に移動するアンカーを持っています。私はこの上でクリックすると、アンドロイド4.0.3を持つエミュレータで
読み込みエラーページのサンドイッチ

<div class="ui-input-share ui-btn-corner-all ui-body-c" id="mk_home"> 
    <a href="javascript:void(0);" class="ui-input-text" data-role="none" >Whats up?</a> 
</div> 

私はlogcatでログをチェックすると、私は

を言って、エラーを参照してください「読み込みエラーページ」を言ってエラーが出ます
Unknown chromium error: -6 

私はそれを稼働させるために何ができますか?

+0

あなたのプロジェクトにjqueryモバイルイメージが埋め込まれていますか? – njzk2

答えて

2

は、このエラーが来ていた、このリンクを参照することができます。だからuのようなURLを持っている場合

domain.com?p1=a 

あなたは、このようなエラーが発生します。今のところ最善の解決策は、ブラウザでWebアプリケーションをテストし、URLにparamsを追加して削除するタイミングと場所を確認することです。

localstorageにこれらのパラメータを保存し、必要なときに取得できます。

+0

これは素晴らしいです!!!私はハッシュと検索を使用して私のアプリ全体を構築...これは大きな問題です!!!! – Yuki

+0

私はそれを最初に信じることができませんでしたが、これは本当に問題です!本当にそれをテストするためにデバイスに展開する必要があります... – shaharsol

4

jQueryを使用しているので、イベントを配線するのにjQueryを使用することをお勧めします。それはe.preventDefault()を使って言われています。 e.stopImmediatePropagation();は、モバイルでjQueryモバイルがデフォルトアクションを実行するのを停止する必要があります。

$("#verify").click(function (e) { 
    e.stopImmediatePropagation(); 
    e.preventDefault(); 
    //Do important stuff.... 
}); 

更新

既存のマークアップを使用するためのより良い方法は、単にあなたに=「外部」のrelを追加し、あなたのonclickを正しく振る舞うべきでしょう。

<p> 
    <a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a> 
</p> 

これはjQuery Mobileがリンクを通常のタグとして扱い、falseを返すとデフォルトのアクションが停止するため、これは機能します。 jQueryのモバイルで

+0

アンカーの$(id).unbind(event、eventFn).bind(event、data、eventFn)を実行しています。 rel = externalを試します。 – ghostCoder

+0

まだ動作しません:( – ghostCoder

2

、あなたが<a href=...> </a>を使用したい場合、あなたはより良いページを正しくターゲットにジャンプするためには、<a>REL =「外部」を使用すると思います。 JavaScriptを使用する場合は、<a href='...'>では使用しない方がよいでしょう。なぜなら、hrefはハッシュ割り当てで、JavaScriptコード属性ではないからです。

jQuery Mobileはアンカーをサポートしていません。アンカーを使用する必要がある場合は、トレードオフを行う必要があります。 ICSでのWebKitは、URLを

?param=abc 

の取り扱いに壊れているので、あなたはjQuery Mobile Anchor Linking

1

時にはjquery自体がajaxリクエストでこれらのurlパラメータを追加することがあります。これは、キャッシングを有効にした場合です。あなたは簡単に使用して、プロジェクト全体のために、この機能を無効にすることができ :

$.ajaxSetup({ cache: true }); 

が、これは誰かに役立ちます願っています。

関連する問題