web-dev-qa-db-ja.com

iOS:ソーシャルネットワークでテキストと画像を共有する方法

間違いをしているかどうか教えてください。

NSString *sharedMsg=[NSString stringWithFormat:@"Hello world"];
UIImage* sharedImg=[UIImage imageNamed:@"image"];
NSArray* sharedObjects=[NSArray arrayWithObjects:sharedMsg, sharedImg, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] 
              initWithActivityItems:sharedObjects applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];

実行時にFacebookのアイコンを選択すると、テキストが失われ、画像が正しく表示されます。
私のxcodeは6.3.1で、iPadでテスト済みです。

47
user3290180

Facebookアプリケーションの最近の更新により、組み込みのFacebook共有アクティビティがステータステキストを無視するアクティビティに置き換えられたようです。デバイスからFacebookアプリを削除すると、お持ちのコードを使用してテキストが表示されます。 Facebookアプリをインストールしている場合、画像は取得できますが、テキストは取得できません

Facebookのポリシーでは、ステータスメッセージを事前に入力したり、すべてのコンテンツをユーザーが生成したりすることを許可していません-この背後にある意図は理解していますが、多くの場合、それは一種のばかげていると思います-たとえば、私のゲームではユーザーのスコアを事前に入力しますが、今はできません。そのため、ユーザーには空のダイアログボックスが表示されます。 Facebookの共有オプションは、誰も使用しないため、おそらく単純に削除します。

Facebookのこの response は、動作が仕様によるものであることを確認します

95
Paulw11

これがSwiftの答えです。問題の解決にはならないかもしれませんが、このタイトルを探している人には役立つかもしれません。ボタンを作成するだけでアクションが実行されます。そして、このようなボタンのアクションをインストールします。

注:設定に移動して、FacebookまたはTwitterにログインする必要があります。その後、このようにします。

@IBAction func onShareTouched(sender: AnyObject) {

    print("share")

    let myShare = "My beautiful photo! <3 <3"
    let image: UIImage = UIImage(named: "yourImageNameHere")

    let shareVC: UIActivityViewController = UIActivityViewController(activityItems: [(image), myShare], applicationActivities: nil)
    self.presentViewController(shareVC, animated: true, completion: nil)

  }
8
Khuong
NSString* text=@"Hello world";
NSURL *myWebsite = [NSURL URLWithString:@"http://www.website.com/"];
//  UIImage * myImage =[UIImage imageNamed:@"myImage.png"];
NSArray* sharedObjects=@[text,myWebsite];
UIActivityViewController * activityViewController=[[UIActivityViewController alloc]initWithActivityItems:sharedObjects applicationActivities:nil];

activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];
0
Arpit Lokwani