IOS-Facebook、Twitterで共有する質問

4848 ワード

重点的な内容はフェイスブックとTwitterで共有する時、いくつかの問題に遭遇しました:1.共有をクリックすると、プログラムがフラッシュバックします.2.共有をクリックして、何の反応もなく、何のヒントもありません.
国内の携帯電話と日本の携帯電話でのテストを経て、以上の2つの問題を解決しました.解析とまとめは次のとおりです.
SLComposeViewController *vc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [vc setInitialText:body];
    [vc addURL:[NSURL URLWithString:url]];
    vc.completionHandler = ^(SLComposeViewControllerResult result){
        if (result ==SLComposeViewControllerResultDone) {
            .....
        }
    };
       [self.targetVC presentViewController:vc animated:YES completion:nil];

Bug 1:フラッシュバックが発生した場合、私はこのような状況に遭遇したのは国内の携帯電話で運行してからで、日本の携帯電話でフラッシュバックが発生しない状況です.原因:私は国内の携帯電話でdebugを行って、SLComposeViewController*vcを発見して、vcはnilです;日本の携帯電話でデバグを行い、SLComposeViewController*vcを発見し、vcは空ではない.結果:vcがnilの場合[self.targetVC presentViewControl:vc animated:YES completion:nil]に進みます.これはcrashプログラムが崩壊します.解決方法:
if (vc) {
        [self.targetVC presentViewController:vc animated:YES completion:nil];
    }

判断を加えると、国内の携帯電話でプログラムを実行し、クリックして共有するときに崩壊しないことを保証します.
Bug 2:通常、フェイスブックやtwitterにログインしていない場合やインストールしていない場合は、共有をクリックするとヒントがあり、ユーザーが自分で構成できるようになります.しかし国内の携帯電話を使うのは反応がなくて、何も提示しないで、日本の携帯電話を使うと提示するので、最初は国の問題だと思っていましたが、国によって携帯電話が違います.後で調べたところ、
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
.....
SLComposeViewController *vc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [vc setInitialText:body];
    [vc addURL:[NSURL URLWithString:url]];
    vc.completionHandler = ^(SLComposeViewControllerResult result){
        if (result ==SLComposeViewControllerResultDone) {
            .....
        }
    };
       [self.targetVC presentViewController:vc animated:YES completion:nil];
}

あなたの携帯電話にFacebookやTwitterがインストールされていない場合は、「SLComposeViewController isAvailableForServiceType:SLServiceType Facebook」という判断は、判断の中の方法ではなく、共有機能のヒントもありません.私はプログラムの外層のこの判断を削除した後、日本の携帯電話で実行して、クリックして分かち合って、alertを正しく提示することができて、フェイスブックがダウンロードしたり配置したりする必要がないことを提示します.しかし、国内の携帯電話は依然としてだめで、何のヒントも反応もありません.
日本のウェブサイトのいくつかの資料を通じて最後に以下の状況を総括してヒントボックスを弾きます:
*日本の携帯電話のまとめ:*
日本の携帯電話フェイスブックのまとめ表:
携帯電話は登録するかどうかを設定します
Facebookをダウンロードするかどうか
携帯電話のフェイスブックに登録するかどうか
isAvailableForServiceTypeの値
公開できるかどうか
いいえ
いいえ
いいえ
NO
できません
はい
いいえ
いいえ
YES
できる
いいえ
はい
いいえ
YES
できません
はい
はい
いいえ
YES
できる
いいえ
はい
はい
YES
できる
はい
はい
はい
YES
できる
【ケース1でalertがポップアップされます.内容はここでは言いません.ポイントはポップアップできることです】【ケース3とケース4でalertがポップアップされます.内容はここでは言いません.ポイントはポップアップできることです】
日本携帯Twitterまとめ表:
携帯電話は登録するかどうかを設定します
Twitterをダウンロードするかどうか
携帯Twitterに登録するかどうか
isAvailableForServiceTypeの値
公開できるかどうか
いいえ
いいえ
いいえ
NO
できません
はい
いいえ
いいえ
YES
できる
いいえ
はい
いいえ
YES
できません
はい
はい
いいえ
YES
できる
いいえ
はい
はい
YES
できる
はい
はい
はい
YES
できる
【ケース1はalertを弾きます.内容はここでは言いません.ポイントは弾けます】【ケース3はalertを弾きます.内容はここでは言いません.ポイントは弾けます】
*国内携帯電話のまとめ:*
国内携帯電話Facebookまとめ表:
携帯電話は登録するかどうかを設定します
Facebookをダウンロードするかどうか
携帯電話のフェイスブックに登録するかどうか
isAvailableForServiceTypeの値
公開できるかどうか
いいえ
いいえ
いいえ
NO
できません
はい
いいえ
いいえ
YES
できる
いいえ
はい
いいえ
YES
できません
はい
はい
いいえ
YES
できる
いいえ
はい
はい
YES
できる
はい
はい
はい
YES
できる
【ケース1日本の携帯電話のように一つのヒントが出ない、現象は反応しない】【ケース3日本の携帯電話のように一つのヒントが出ない、現象は反応しない】
日本携帯Twitterまとめ表:
携帯電話は登録するかどうかを設定します
Twitterをダウンロードするかどうか
携帯Twitterに登録するかどうか
isAvailableForServiceTypeの値
公開できるかどうか
いいえ
いいえ
いいえ
NO
できません
はい
いいえ
いいえ
YES
できる
いいえ
はい
いいえ
YES
できません
はい
はい
いいえ
YES
できる
いいえ
はい
はい
YES
できる
はい
はい
はい
YES
できる
【ケース1反応なし、ポップアップしない】【ケース3反応なし、ポップアップしない】
参照先:http://dev.classmethod.jp/smartphone/iphone/sl-compose-view-controller/