9

これを投稿してから1時間後に答えが見つかるかもしれませんが、すでに1時間以上探していて、うまくいかないようです。だからここに行く..

可能であれば、これらの Twitter アプリのいずれかで私のプロフィールを開く簡単な「お問い合わせ」リンクをアプリに追加したいと思います.... 「Twitter」、「Tweetbot」、「Twitterriffic」、または Facebook にフォールバックします利用できない場合は Safari。Twitter などの完全な API を追加したくありません。これは単なる連絡先ページであるため、タイムラインにアクセスしたり、ユーザー ID などを知ったりする必要はありません。

携帯電話で使用している Tweetbot APP とハンドラーは正常に動作し (以下を参照)、プロフィール ページを開きますが、デフォルトの Facebook または Twitter アプリの動作を取得できないようです。アプリケーションは起動しますが、それぞれのページに到達しません。プロファイル ページ (明らかにテスト コードを省いていますが、これらはアプリケーションを呼び出す行です) ....

//Twitter
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://twitter.com/MyTwitterID"]];

//Tweetbot - WORKS!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tweetbot:///user_profile/MyTwitterID"]];

//Fall Back to Safari - WORKS!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.twitter.com/MyTwitterID"]];

//Facebook 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://profile/MyFbID"]];

ここでかなりの情報を入手しましたが、Tweetbot と Safari 以外では機能させることができません。URL 部分の形式が間違っていると推測していますが、どのようにすべきかを説明している場所が見つかりません。Google で検索すると、twitter と facebook のタグが付いたページが表示されますが、役立つ情報はありません。また、Twitter API のドキュメントは、私がやりたい単純な実装には詳細すぎます。適切な URL 形式を教えてくれる人はいますか?


[編集] 1 時間以上かかりましたが、少なくとも Twitter の場合は..

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://user?screen_name=MyTwitterID"]];

まだFacebookのものに取り組んでいます!! ここで偶然見つけましたが、答えを信用することはできません

Facebook のものも機能するようになったら、他の人の助けになる場合に備えて、コードをすべてここに投稿します。

プラズマ


編集 2: ここに私のコードがあります (私は私のウェブサイトの URL と私の facebook ID を削除しましたが、あなたはアイデアを得るでしょう..それは UI アクションシートをポップします お問い合わせ オプション..他の誰か。

#pragma mark - Contact Us Methods
- (IBAction)openContact {   

    UIActionSheet *popupContact = [[UIActionSheet alloc] initWithTitle:@"Contact Us" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Twitter", @"Facebook", @"Email", @"Visit our website", nil];

    popupContact.actionSheetStyle = UIActionSheetStyleDefault;

    [popupContact showInView:self.parentViewController.tabBarController.view];

}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    NSString *twitterUserName  = @"MyTwitterName";

    //Facebook ID (not the page name) check the FB urls for id=XXXXXXXXXXXXXXXX
    NSString *facebookUserID = @"XXXXXXXXXXXXXXX";


    UIApplication *app = [UIApplication sharedApplication];

    switch(buttonIndex){
        case 0: {
            //Contact Us By Twitter 

            //Twitter Default
            NSURL *twitterURL = [NSURL URLWithString:[NSString stringWithFormat:@"twitter://user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:twitterURL]) 
            {
                [app openURL:twitterURL];
                return;
            }

            //Tweetbot 
            NSURL *tweetbotURL = [NSURL URLWithString:[NSString stringWithFormat:@"tweetbot:///user_profile/%@", twitterUserName]];
            if ([app canOpenURL:tweetbotURL]) 
            {
                [app openURL:tweetbotURL];
                return;
            }

            // Tweetie: http://developer.atebits.com/tweetie-iphone/protocol-reference/
            NSURL *tweetieURL = [NSURL URLWithString:[NSString stringWithFormat:@"tweetie://user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:tweetieURL])
            {
                [app openURL:tweetieURL];
                return;
            }

            // Birdfeed: http://birdfeed.tumblr.com/post/172994970/url-scheme
            NSURL *birdfeedURL = [NSURL URLWithString:[NSString stringWithFormat:@"x-birdfeed://user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:birdfeedURL])
            {
                [app openURL:birdfeedURL];
                return;
            }

            // Twittelator: http://www.stone.com/Twittelator/Twittelator_API.html
            NSURL *twittelatorURL = [NSURL URLWithString:[NSString stringWithFormat:@"twit:///user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:twittelatorURL])
            {
                [app openURL:twittelatorURL];
                return;
            }

            // Icebird: http://icebirdapp.com/developerdocumentation/
            NSURL *icebirdURL = [NSURL URLWithString:[NSString stringWithFormat:@"icebird://user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:icebirdURL])
            {
                [app openURL:icebirdURL];
                return;
            }

            // Fluttr: no docs
            NSURL *fluttrURL = [NSURL URLWithString:[NSString stringWithFormat:@"fluttr://user/%@", twitterUserName]];
            if ([app canOpenURL:fluttrURL])
            {
                [app openURL:fluttrURL];
                return;
            }

            // SimplyTweet: http://motionobj.com/blog/url-schemes-in-simplytweet-23
            NSURL *simplytweetURL = [NSURL URLWithString:[NSString stringWithFormat:@"simplytweet:?link=http://twitter.com/%@", twitterUserName]];
            if ([app canOpenURL:simplytweetURL])
            {
                [app openURL:simplytweetURL];
                return;
            }

            // Tweetings: http://tweetings.net/iphone/scheme.html
            NSURL *tweetingsURL = [NSURL URLWithString:[NSString stringWithFormat:@"tweetings:///user?screen_name=%@", twitterUserName]];
            if ([app canOpenURL:tweetingsURL])
            {
                [app openURL:tweetingsURL];
                return;
            }

            // Echofon: http://echofon.com/twitter/iphone/guide.html
            NSURL *echofonURL = [NSURL URLWithString:[NSString stringWithFormat:@"echofon:///user_timeline?%@", twitterUserName]];
            if ([app canOpenURL:echofonURL])
            {
                [app openURL:echofonURL];
                return;
            }

            // --- Fallback: Mobile Twitter in Safari
            NSURL *safariURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://mobile.twitter.com/%@", twitterUserName]];
            [app openURL:safariURL];
            return;

        }
        case 1: {
            //Facebook
            NSURL *facebookURL = [NSURL URLWithString:[NSString stringWithFormat:@"fb://profile/%@", facebookUserID]];
            if ([app canOpenURL:facebookURL]) 
            {
                [app openURL:facebookURL];
                return;
            }

            // --- Fallback: Mobile Facebook in Safari
            NSURL *safariURL = [NSURL URLWithString:@"https://touch.facebook.com/MyFBName"];
            [app openURL:safariURL];
            return;

        }
        case 2:
            //Email           
            [app openURL:[NSURL URLWithString:@"mailto://support@mywebsite.co.uk?subject=Important%20Email&body="]];
            return;


        case 3:
            //Visit The Website
            [app openURL:[NSURL URLWithString:@"http://www.mywebsite.co.uk"]];
            return;

        case 4:
            //Cancel
            return;

    } 

}
4

2 に答える 2

0

最初の投稿の編集 2 を参照してください。これは完全な解決策です。

プラズマ

于 2012-09-11T08:31:22.990 に答える
0

ソリューションへのいくつかの追加手順、

最初にアプリが存在するかどうかを確認してから起動するか、サファリでリンクを開く必要があります。

NSString *filePath = @"/Applications/TweetBot.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
   // launch app
}
else 
{
   // launch safari instead
}
于 2012-06-14T23:09:15.673 に答える