私は共有するために選択したメディアをキャプチャする方法があるかどうかを判断しようとしています。私はiOSアプリを持っていて、あらかじめ定義されたテンプレートを共有する共有ボタンがあります。ユーザーが共有ボタンをクリックすると、共有に使用できるアプリが表示され、FacebookやWhatsApp、Skypeが選択された場合、選択したメディアのネイティブアプリにリダイレクトされます。今私は彼らが何を選んだのか知りたい。iOSで共有するメディアを知ることはできますか?
2
A
答えて
1
あなたは、ユーザが選択したActivityTypeを、彼らは活動を完了したか、それをキャンセルするかどうかをチェックするためにUIActivityViewControllerのcompletionWithItemsHandler
を使用することができます。
let activityViewController = UIActivityViewController(activityItems:[ "Hello"], applicationActivities: nil)
activityViewController.completionWithItemsHandler = { (activityType, completed, returnedItems, error) in
//check completed
if completed{
//check activity type using activity type
if activityType!==UIActivityTypePostToFacebook{
//Facebook
}
and so on
}
}
presentViewController(activityViewController, animated: true, completion: {})
1
あなたはUIActivityViewController
UIActivityViewControllerスイフトで- (IBAction)shareButton:(UIBarButtonItem *)sender
{
NSString *textToShare = @"Look at this awesome website for aspiring iOS Developers!";
NSURL *myWebsite = [NSURL URLWithString:@"http://www.codingexplorer.com/"];
NSArray *objectsToShare = @[textToShare, myWebsite];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];
NSArray *excludeActivities = @[UIActivityTypeAirDrop,
UIActivityTypePrint,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo];
activityVC.excludedActivityTypes = excludeActivities;
[self presentViewController:activityVC animated:YES completion:nil];
}
と客観Cで共有するために、このコードを使用することができます。
@IBAction func shareButtonClicked(sender: UIButton) {
let textToShare = "Swift is awesome! Check out this website about it!"
if let myWebsite = NSURL(string: "http://www.codingexplorer.com/") {
let objectsToShare = [textToShare, myWebsite]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
//New Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList]
//
activityVC.popoverPresentationController?.sourceView = sender
self.presentViewController(activityVC, animated: true, completion: nil)
}
}
あなたはFacebookを利用して共有をperticularしたい場合は、客観CでSLComposeViewControllerを使用することができます
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
fbSLComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[fbSLComposeViewController addImage:someImage];
[fbSLComposeViewController setInitialText:@"Some Text"];
[self presentViewController:fbSLComposeViewController animated:YES completion:nil];
fbSLComposeViewController.completionHandler = ^(SLComposeViewControllerResult result) {
switch(result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"facebook: CANCELLED");
break;
case SLComposeViewControllerResultDone:
NSLog(@"facebook: SHARED");
break;
}
};
}
else {
UIAlertView *fbError = [[UIAlertView alloc] initWithTitle:@"Facebook Unavailable" message:@"Sorry, we're unable to find a Facebook account on your device.\nPlease setup an account in your devices settings and try again." delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
[fbError show];
}
SLComposeViewControlleスウィフト
のR@IBAction func facebookButtonPushed(sender: UIButton) {
if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook){
var facebookSheet:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
facebookSheet.setInitialText("Share on Facebook")
self.presentViewController(facebookSheet, animated: true, completion: nil)
} else {
var alert = UIAlertController(title: "Accounts", message: "Please login to a Facebook account to share.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
}
+1
最初に質問を読んでください、私は共有する方法を知っていますが、共有中にユーザーが選択した共有のメディアを取得したいので、どのメディアを追跡することができますほとんどの共有に使用されています。 –
関連する問題
- 1. FBSDKShareDialogのiOSをコンテンツなしで共有することができます
- 2. NativeScriptアプリに共有することはできますか?
- 3. iOS - iOSのWhatsAppにテキスト形式のUIImageを共有することはできますか?
- 4. React NativeとiOS/AndroidでApolloキャッシュを共有することはできますか?
- 5. UITableViewCellとUICollectionViewCellの間でxibを共有することはできますか?
- 6. iOSレルムデータベースをアプリケーショングループと共有できますか?
- 7. iosでinstagramを共有するには?
- 8. iOS App内でSqliteをiTuneファイル共有で共有する。
- 9. 共有マッピングでダーティページを破棄することはできますか?
- 10. APIKITコンソール経由でRAMLファイルを共有することはできますか?
- 11. Androidでオーディオ入力(マイク)ストリームを共有することはできますか?
- 12. 共有ホスティングで「ft_min_word_len」を変更することはできますか?
- 13. 'some'サブドメイン間でCookieを共有することはできますか?
- 14. スラックチーム間でユーザー名を共有することはできますか
- 15. 共有アクセスでprovisonプロファイルをインストールすることはできますか?
- 16. Facebookのトークンをクライアントと共有することはできますか?
- 17. ios共有拡張はChromeから共有URLを取得できません
- 18. Xcode 8シミュレータでiOSプッシュ通知をテストすることはできますか?
- 19. iOS + Droidプロジェクト間でアセット/リソースを共有できますか?
- 20. iOSはローカルカレンダーとiCloudを共存させることができますか?
- 21. 共有ポインターと非ポインターデータメンバーを混在させることはできますか?
- 22. iOSファイル共有機能をドキュメントディレクトリのサブフォルダに制限することはできますか?
- 23. Intent.ACTION_SENDでファイルを共有することは可能ですか?
- 24. link_statテーブルをクエリすることで、いくつのURLがFacebook上で完全に共有されているかを知ることはできますか?
- 25. Plesk共有ホスティングにRSYNCをインストールすることはできますか?
- 26. 共有オブジェクトライブラリを静的にリンクすることはできますか?
- 27. クリックして共有ファイルをインストールすることはできますか?
- 28. blogger.comの共有ボタンをカスタマイズすることはできますか?
- 29. 共有サーバーにrocket.chatをインストールすることはできますか?
- 30. アプリを除外して直接共有することはできますか?
あなたはこの共有のために何を使用していますか? 'UIActivityViewController'?完了ハンドラのドキュメントを見ましたか? – rmaddy
@rmaddyはい、私は 'UIActivityViewController'を使用するつもりです –