タイトルの通り、URLスキームを用いてWebページのリンクからAndroidのfacebookメッセンジャーアプリが起動しなかった件の備忘録。
解決には@310sugarspotさんのお知恵をお借りいたしました感謝!!
URLスキームというのはURLを用いてスマフォ端末などでアプリを起動する機能です。
例えば、メッセンジャーじゃない通常のfacebookアプリは以下のURLスキームで起動できます。
fb://
このURLをWebサイトのリンクなどに設定することでクリックすることでそのアプリを起動させることができます。
・・・なんですが、facebookメッセンジャーアプリがAndroidの場合起動しない・・・。
Webサイトで見た感じだとfacebookメッセンジャーを起動するURLスキームはfb-messenger://。iOSだとこれで起動を確認できたので間違いないはず。
ここで仮説。
・そもそもAndroid版のfacebookメッセンジャーはURLスキームが設定してない(この辺はアプリ依存)
・iOSとAndroidでURLスキームが異なる(ちょっと考えにくい)
インストールされたアプリのURLスキームを取り出す方法がわからなかったので上記の@310sugarspotさんに相談するとManifestViewerで確認できると教えていただきました。
ManifestViewerでちゃんと起動するfacebookアプリと、起動しないfacebookメッセンジャーアプリのマニフェストファイルを比較すると・・・
<category android:name="android.intent.category.BROWSABLE"/>
facebookメッセンジャーだとこの項目がないことがわかりました。BROWSABLE=ブラウザからの起動が許可されていないのですね・・・
んー万策尽きたと思いましたが、facebookアプリからはfacebookメッセンジャーが起動できているからブラウザからの起動とアプリからの呼び出しは異なる権限体系である=facebookアプリをURLスキームで起動して、そこからfacebookメッセンジャーを起動できればいいんじゃないかと思いつきました。
というわけで以下のURLを試してみる。
fb://messaging
facebookアプリを起動してメッセージを送るURLスキームです。
これで試すと、無事facebookメッセンジャーが起動しました(もちろんfacebookアプリがインストールされている必要があります)。
この辺の情報って意外と少ないですね・・・。
Please give us your valuable comment