iOS11ではFaceBook、twitterにログインする機能がなくなり、SLComposeViewControllerを使ったシェア機能が実装できなくなりました。SLComposeViewControllerをつかわないFaceBook、Twitterでのシェアの方法を教えてくださると助かります。
CC BY-SA 3.0
2017-08-30T10:46:11.797
37614
2017-08-31T02:54:07.973
2017-08-30T11:48:33.060
5519
25112
question
swift ios swift3
iOS11においてのシェア機能の実装
まず、

> SLComposeViewControllerを使ったシェア機能が実装できなくなりました。

というのはあまり正確ではありません。  
TwitterやFacebookの公式アプリがインストールされている場合は、iOS
11でもSLComposeViewControllerを使った投稿ができるようです。

（※ ただし、iOS 11 beta 8
の時点では、Twitterに投稿しようとすると「Twitterアカウントがありません」というアラートが表示される問題があります。Twitterアプリ上でログインしていればアラートがでても投稿はできます）

公式アプリがインストールされていない場合の投稿については以下の様な選択肢があります

  1. TwitterやFacebookの公式SDKを利用する（フル機能の投稿画面が使いたいなら） 
    * Twitter公式による移行ガイド: [Migrating from iOS Social Framework](https://dev.twitter.com/twitterkit/ios/migrate-social-framework)
    * FacebookSDK: [iOS用Facebook SDKスタートガイド](https://developers.facebook.com/docs/ios/getting-started?locale=ja_JP)
  2. Webの投稿画面をSafariやSFSafariViewControllerなどで開く （画像などが不要でテキストのみでOKなら） 
    * Twitter: <https://twitter.com/intent/tweet?text=>... 
    * Facebook: [https://www.facebook.com/dialog/share?app_id=...&href=](https://www.facebook.com/dialog/share?app_id=...&href=)...
  3. 公式アプリをインストールしていない場合は、アプリのインストールを促す 
    * アプリのインストール有無は `"twitter://"` や `"fb://"` を UIApplication のcanOpenURLでチェックすることで判断できます。
  4. 公式アプリをインストールしていないユーザーは少数とみなして切り捨てる、または共有機能をUIActivityViewControllerのみにする

1と２の方式はどちらも[Facebook 開発者向けページ](https://developers.facebook.com/)
でアプリの登録が必要が必要になります。

どうぞ、ご参考に。
CC BY-SA 3.0
2017-08-31T02:47:27.283
37631
2017-08-31T02:54:07.973
2017-08-31T02:54:07.973
23829
23829
37614
answer