この投稿 からユーザーをAndroidまたは1つのリンクからiosにリダイレクトする機能を作成できました。ただし、Androidアプリを表示した状態でPlayストアを開きたいので、リダイレクト時に以下のリンクを試しました。
window.location.href = "https://play.google.com/store/apps/details?id=com.myapp";
ただし、ブラウザ自体でPlayストアを開きます。 Playストアアプリを開きたいのですが、アプリユーザーがPlayストアアプリを持っていると想定しているため、Playストアアプリがインストールされているかどうかを確認したくありません。また、次のように市場リンクを試しました
window.location.href = "market://details?id=com.myapp";
しかし、これも機能しません。感謝します。
リダイレクト時に以下のURLを使用して動作させました
window.location.href = "https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.myapp";
携帯のブラウザからこのURLにアクセスすると、ブラウザ内でPlayストアが開かず、代わりにPlayストアアプリが開きます。これは私の目的に役立ちます。
これを行うには、shouldOverrideUrlLoading
のWebViewClient
メソッドでURLを確認します。下記参照
String market_url = "market://details?id=package_name";
String website_url = "https://play.google.com/store/apps/details?id=package_name";
onCreate()
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("file:///Android_asset/index.html"); // path to html
webview.setWebViewClient(new Callback());
private class Callback extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.equals(website_url)) {
try {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(market_url));
startActivity(intent);
} catch (ActivityNotFoundException e) {
}
}
return (false);
}
}
index.html
<a href="https://play.google.com/store/apps/details?id=package_name">App link</a>
これにより、常にPlayストアでリンクが開きます。
これを行うためのより良い方法は
$(document).ready(function (){
if(navigator.userAgent.toLowerCase().indexOf("Android") > -1){
window.location.href = 'http://play.google.com/store/apps/details?id=com.truecaller&hl=en';
}
if(navigator.userAgent.toLowerCase().indexOf("iphone") > -1){
window.location.href = 'http://iTunes.Apple.com/lb/app/truecaller-caller-id-number/id448142450?mt=8';
}
});