web-dev-qa-db-ja.com

ブラウザリンクからPlayストアアプリを開く

この投稿 からユーザーを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";

しかし、これも機能しません。感謝します。

6
Hitesh

リダイレクト時に以下のURLを使用して動作させました

window.location.href = "https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.myapp";

携帯のブラウザからこのURLにアクセスすると、ブラウザ内でPlayストアが開かず、代わりにPlayストアアプリが開きます。これは私の目的に役立ちます。

19
Hitesh

これを行うには、shouldOverrideUrlLoadingWebViewClientメソッドで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ストアでリンクが開きます。

1
Iamat8

これを行うためのより良い方法は

    $(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';
 }
});