3

MVC 4 を使用して Web サイトを作成しており、URL スキームを使用して JavaScript 内でアプリケーションを開く必要があります (モバイル デバイスを使用してサイトを閲覧する) アプリケーションがインストールされていない場合は、JavaScript を使用して Google にリダイレクトする必要があります。遊ぶ。

次のようなスレッドで言及されているさまざまな方法をすべて調べて試しました: Android カスタム URL スキームが処理されない場合にマーケットプレイスにフォールバックするにはどうすればよいですか?

これらのソリューションの多くは、アプリがインストールされていない場合に別の Web サイトにリダイレクトされるタイムアウト イベントに依存しています。私が直面している問題はwindow.location = URL;、JavaScript で を使用した後、作成したタイムアウトが消えてしまうように見えることです。タイムアウトをスキップするとwindow.location = URL;、問題なく起動し、Google Playなどにリダイレクトされます。私がこの問題を抱えている理由を誰かが理解していますか?

私が言ったように、MVC 4 を使用して、単純なビュー内で JavaScript を実行します。iframe を開くなど、さまざまなコードを試してみましたが、すべて上記と同じ問題が発生しました。アプリを開こうとしたところ、Safari を使用して iPhone デバイスで ITunes リダイレクトを遅らせることができたようです。Android/Chromeでも同じことができますか?

これを考慮して得られる助けをいただければ幸いです。

4

2 に答える 2

2

iframe を使用してアプリを開くことは、Google Chrome (v25 以降) ではサポートされなくなりました。アプリを開く (インストールされている場合) またはマーケットにリダイレクトするためのAndroid ガイドラインの例を参照できます。

于 2013-12-24T09:52:39.807 に答える
-1

Skype ソリューションが気に入っています。

var element = document.createElement('iframe');
element.id = '_the_frame_' = ((new Date()).getTime();
document.appendChild(element);           
var r = document.getElementById(element.id);
var u = true;
window.addEventListener("pagehide", function () { u = false; }, false);
if (r !== null) {
         r.src = _customSchemaUrl;
 }
 setTimeout(function() {
 if (u) {
       window.location = _downloadIosUrl;
    }
}, 2000);
于 2013-12-18T06:40:38.000 に答える