haruxiang
@haruxiang

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

javascriptでURLスキームの利用したアプリ起動ができるのか

javascript(Vue.js 2系)を使ってスマホのwebサイトを作っています。
ユーザーがスマホで対応していないブラウザからサイトを閲覧した際に他のブラウザを開いてサイトを見るように促す挙動をフロント側で行うのは可能でしょうか
例)
ブラウザでのURL(instagramやtwitter)押すとそのアプリが開くという挙動を行いたい

解決したいこと

・javascriptでできるのか(どの言語で上記の実装をされているのか)
・この実装を行うことで起きる脆弱性

自分で試したこと

・URLスキームの利用(android、iOSでそれぞれアプリを開かせる)
→androidで実装してみたが何も表示されない。
・location.hrefで実装
→別タブが開くが今回行いたいのは別のアプリを起動させることなのでやりたいこととは違う

0

1Answer

URL SCHEME というものが役に立つかもしれません。

これは特定のリンクを開くことで特定のアプリケーションを起動する機能です。

その形式は {scheme}://{action} であり、例えば私の後ろの例では googlechrome が対応する scheme であり、twitter.com/username がこの action になります。

もし貴方のウェブサイトが Safari 上でうまくレンダリングされない場合は、Chrome を使ってリンクを開くようにユーザーを導く必要があります。そうすると、ウェブサイト上で自動的に、またはボタンを設定してこのリンク googlechrome://twitter.com/username を開くことによって、ユーザーがインストールした Chrome で開くことになります。

残念ながら、ユーザーの携帯電話にそのブラウザがインストールされていない場合、これは無効です。

貴方が言及していたTwitterを開くことに関しては、iOS上ではユニバーサルリンクを用いて実現されていると私は知っています。これの利点は、特定のリンクを意図的に作成する必要がなく、通常のリンクを使えば良いという点です。ユーザーの携帯電話にそのアプリケーションがあれば、そのアプリケーションを使用して開き、インストールされていなければデフォルトでそのページを開きます。

上述の機能はすべてアプリによって実装が必要で、自社のアプリケーション内で開くことを望むか、他のアプリケーションを使用して開くことを望むかに関わらず、相手がこの行動をサポートしている必要があります。自社のアプリケーションについては、該当するAndroidおよびiOSの開発者にこの機能をサポートしているかどうかを尋ねることができます。他のアプリケーションに関しては、その機能をサポートしているかどうかを調査してテストする方法を通じて調べる必要があります。

お役に立てれば幸いです。

1Like

Comments

  1. @haruxiang

    Questioner

    回答ありがとうございます。
    重ねて質問してしまうのですが、
    yahooのアプリからAndroid ならGoogle Chrome を、iOSならsafariをとURLSchemeを使ってアプリを開くことは可能なのでしょうか。?

    可能であればその原理を詳しく教えて頂きたいです。

  2. アンドロイド携帯を持っていなくて申し訳ない。 同様に、ヤフーのアプリも持っていない。

    例として、Gmailを使用します。

    お試しいただければ幸いです。次のリンクをウェブサイトに追加し、リンクを開いてください。

    私はさきほどiOSでGmailを直接開いて、件名が「Hello」、内容が「Write anything you want to say here」、宛先がdemo@gmail.comのメールを作成することができました。

    googlegmail:///co?subject=Hope This Can Help You&body=Write anything you want to say here&to=demo@gmail.com

    おそらく、ヤフーの例は、他のアプリを開きたいのに、それをコントロールできないというものだろう。そうしたアプリがURL Schemeを提供しているかどうかをオンラインで検索することができます。さきほど言及したGmailのURL Schemeは、こちらで見つけました。参照リンク

  3. @haruxiang

    Questioner

    理解しました。回答ありがとうございました。

Your answer might help someone💌