React Native LinkingAPIを使用してFacebookページを開こうとしています。機能しません。Facebookアプリをインストールしています。試したことは次のとおりです。
_Linking.openURL('fb://page/<page_name>');
Linking.openURL('fb://profile/<profile_name>');
Linking.openURL('http://facebook.com/<page_name>');
_
Communications library:Communications.web(url)
も使用してみました。 FacebookとInstagramでは機能しません。しかし、それはグーグルマップ、Appleマップ、ツイッター、その他の大物にとって魅力のように機能します。
私は何か間違ったことをしているのだろうか、それともアプリにディープリンクを適切に実装する方法についてFacebookからそれらの人々にいくつかのAndroid記事を送るべきか?彼らは明らかに彼らが何をしているのかわからないのだろうか?やっている。
OK、Facebookを開く1つの方法を見つけました:
Linking.openURL('fb://page/PAGE_ID');
Linking.openURL('http://instagram.com/_u/USER_NAME');
Linking.openURL('http://instagram.com/_p/PICTURE');
一般に、iOSを開こうとする前に、iOSのLinking.canOpenURL()
を確認する必要があります。
また、プロトコルをinfo.plist
の配列として次のように追加してください。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
</array>
info.plist
のXcodeプロジェクトでこれを行うこともできます。
同じ問題が発生していますが、解決できません。 onPress= {()=> Linking.openURL("https://www.SOME_SOCIAL.NETWORK")}
のonpress
アクションを備えた複数のソーシャルネットワーキングボタンがあります。Twitter、Instagram、SnapChatにリンクしているボタンはすべて、インストールされている場合はアプリを開き、インストールされていない場合はSafariのWebページを開きます。インストールされています。唯一の外れ値はFacebookです。 onPress= {()=> Linking.openURL("https://www.facebook.com/")}
などのオンプレスアクションを指定すると、アプリがインストールされている場合でも、リンクは常にSafariで開きます。
この奇妙な振る舞いのために、私は次のようにFacebookリンクのonpress
アクションを処理しています。
`` `
Linking.canOpenURL("fb://profile/XXXXXX").then(supported => {
if (supported) {
return Linking.openURL("fb://profile/XXXXXX");
} else {
return Linking.openURL("https://www.facebook.com/");
}
})
`` `
上記のコードは意図したとおりに機能しませんが、他には何も機能していないようです。
ここでは何も機能しませんでしたが、いくつかのランダムな試行で、このソリューションが機能していることがわかりました:
Linking.openURL('fb://page/<ID-PAGE>');
そして、あなたがあなたのページIDを探しているなら、ここに小さなチュートリアルがあります: https://roadtoblogging.com/get-facebook-page-id/
更新-2019年5月
// open via app
fb://facewebmodal/f?href=PAGE_NAME