iOS

Swiftの「UIActivityViewController」でTwitterにだけハッシュタグをつけたい!

投稿日:2017年10月16日 更新日:

はじめに

こんにちわ、nukkyです。
今回はSNSやメール連携したいときに便利な
「UIActivityViewController」を紹介したいと思います。
実は「UIActivityViewController」でのTwitter連携時のみに
ハッシュタグをつけたかったのですが
これが意外と難航したのでこちらも合わせて紹介したいと思います。

実装

まずはやってみよう

UIActivityViewControllerの使い方は実に簡単
・[Any]を用意してUIActivityViewControllerをインスタンス化
・presentViewControllerで呼び出す
以上です。
本当に最低限のコードだとこんな感じ

第一引数のactivityItemsですがこちらはAnyの配列が渡せます。
渡せる情報としては以下の三つになります。
・テキスト(String)
・URL(URL)
・画像(UIImage)
つまりURLや画像を渡したい場合は、items変数にURLやUIImageも一緒に入れてやればいいだけです。
さっきのコードにURLと画像を追加で渡す場合以下の様になります。

ただし連携先によっては渡した情報が表示されない(表示できない)こともあるので注意してください。

Twitter連携時のみにハッシュタグをつけたい

ここでTwitterのみハッシュタグをつけるやり方を紹介したいと思います。
使用するのは「UIActivityItemSource」です。
こちらはprotocolになっており、「UIActivityViewController」で
連携先を選択した際になにを選んだか確認できます。
とりあえず今回はテキスト(String)のパターンのみを考えて以下を作成しました。

単純に「activityType」からTwitterかどうかを判断し、
Twitterだった場合、returnにハッシュタグを付与しています。
上記の「UIActivityViewController」のサンプルコードの場合
以下の様に呼び出します。

これでTwitterのみハッシュタグをつけることができました!

 

さいごに

「UIActivityViewController」はものすごく簡単に実装できるので
ライトなアプリであればかなりオススメです。
今回はTwitterに対する特殊なアクションを組み込みましたが
このやり方を応用すれば色々できるかと思うので、
誰かのお役にたてれば嬉しいです。

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:


  1. noodlekim より:

    試して見たところFB共有の場合は効かないようです。

    • nukky より:

      コメントありがとうございます!
      FacebookはアプリからデフォルトのTextを入れてはダメというポリシーがあるようなので、Textは渡せない(渡さない)と考えたほうが良さそうです。
      ただ、画像の共有とハッシュタグの付与(ハッシュタグの付与は一つのみ)は可能なので以下のソースでそれらが可能です。

nukky へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

swift

【Swift】Xcode10.3でSwift5で書かれたプロジェクトでデリゲートが呼ばれない

1 はじめに2 起きた環境3 起きる条件3.1 コード上の条件3.2 ビルド時の条件4 再現4.1 テスト用コード5 対応策6 さいごに7 おすすめ書籍 はじめに こんにちはsuzukiです。Xcod ...

UIWebViewからWKWebViewへの移行

1 はじめに2 ターゲットとなるUIWebViewで行なっていること3 URLへのアクセス4 ローカルHTMLの読み込み5 ページを戻す、進める6 ページの読み込み開始時や終了時に処理を行う(dele ...

swift

[Swift4]UITextViewにプレースホルダをつける

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 UITextFieldにはプレースホルダが標準で用意されていますが、UITextViewには用意されていません ...

swift

SwiftでのDateクラスの煩わしさから解放されるSwiftDateを使ってみた

1 はじめに2 準備3 使ってみよう3.1 現在の取得3.2 パラメータの取得3.3 パラメータの操作3.4 文字列変換3.5 Dateの比較3.6 判定メソッド4 さいごに はじめに こんにちは、n ...

[Swift]クラスタされているPINを取得する

1 はじめに2 前回からの修正箇所3 クラスタリングされたPINの内容を取得する3.1 クラスタリングされているPINか判別3.2 クラスタリングされているPINを取得する4 TableViewとの連 ...

フォロー

follow us in feedly

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。