react native social login 続き
react-native-social-login導入
exsampleを諦めて、とりあえずサンプル実装したら動いた。なんだったんだ。。
node_modules
の削除と、npm install
やり直し、xcodeの再起動は効いてそうだった。
iOSプロジェクト側の設定
facebook developersにログインしてないと見れないけど、この辺りを参考にinfo.plist
をひたすらいじる感じ。iOS9からは設定が異なるので注意。
facebook developers側の設定
ボタンを押せども押せども上記のような画像が出る。iOS9ではnativeアプリではなくsafariに飛ばされるが、後で触れる。最初はiOSプロジェクト側の設定がミスってるのかと思ってたけど、原因はfacebook developersでの設定不備だった。
設定>Basicの画面でwebプラットフォームしか登録していなかったことが原因。
Add PlatformのボタンからiOSを追加すればBundle Identifier
などを登録できるようになる。
iOS9めんどくさい
FBLoginManager.LoginBehaviors.Native
を指定しても、nativeアプリではなくsafariが開く。調べるとちゃんとissueが立ってる。
この辺にiOS9とそれ以前の違いについても詳しく書いてある。アプリ間遷移の仕様が変わったようだ。
サポートサイトでも議論になっている。
なんかFacebookの中の人が「safariで多くの人がfacebook使ってるから、safari経由でoauthしたほうが便利」とか言ってるっように読める。 nativeアプリはの僕としてはうーん。。
自分で書く?
react-native-facebook-login見てみると、ネイディブ機能を操作するコードをObjective-Cで書いていて、それをreact-nativeでラップしてる。Objective-Cで書けばnativeアプリ呼べると思うけど。。
今ここで頑張るのはやめておこう。safari view controllerひとまず使っておいて、内部実装から進める。