先週、メールを使って、情報をシェアしたりする機能がうちのアプリに追加されました。メールには HTML リンクがあって、その後ろに token があります。具体的に言うと、もしユーザーが App をすでにインストールしたら、直接アプリを起動します。もしユーザーがアプリをインストールしてなかったら、App Store か Play Store に転送します。
これを実現するにはメール中のリンクをクリックするとき、 Landing Page をモバイルのブラウザーに開いて、JavaScript で userAgent をチェックして、まず App を立ち上がることを試して、もし起動しなかったら、iOS なら、App Store, Andorid なら Play Sotre を開きます。
コード:
isIos = /iP(one|ad|od)/i.test(navigator.userAgent);
isAndroid = /Android/i.test(navigator.userAgent);
redirectUrl = {
iOS : {
app: 'appscheme://path/parameter',
store: 'https://itunes.com/abc123456'
},
android : {
app: 'appscheme://path/parameter',
store: 'https://play.google.com/abc124?token=123abc'
}
};
if(isIos || isAndroid) {
redirect = isIos : redirectUrl.iOS : redirect.android;
launchTime = +new Date();
window.location.href = redirect.app; // You can add any query string here
setTimeout(function() {
if((+new Date() - launchTime) < 2000) {
window.location.href = redirect.store;
}
}, 100);
}
説明すると、まず iOS か Android かを userAgent をチェックして、そのあと、アプリを起動するのを試します。こちらはアプリ特有の scheme を使って、url を転送するのを試します。もしアプリが起動したら、ブラウザーからアプリに切り替えるので、次の setTimeout の関数は 2 秒ご実行されるはずです。そうすると、store url への転送が実行されないはずです。
もしアプリが起動されてない場合、 100 msを待ってから、store url への転送が実行されます。
今後、たぶん widows phone バージョンも追加されるだろう。ただ、原理は同じです。
それでは。
0 件のコメント:
コメントを投稿