首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

在SDK中打开其余接入应用的解决方案

2013-03-21 
在SDK中打开其他接入应用的解决方案// Check App ID:// This is really a warning for the developer, thi

在SDK中打开其他接入应用的解决方案

   // Check App ID:

    // This is really a warning for the developer, this should not

    // happen in a completed app

    if (!kAppId) {

        UIAlertView *alertView = [[UIAlertView alloc]

                                  initWithTitle:@"Setup Error"

                                  message:@"Missing app ID. You cannot run the app until you provide this in the code."

                                  delegate:self

                                  cancelButtonTitle:@"OK"

                                  otherButtonTitles:nil,

                                  nil];

        [alertView show];

        [alertView release];

    } else {

        // Now check that the URL scheme fb[app_id]://authorize is in the .plist and can

        // be opened, doing a simple check without local app id factored in here

        NSString *url = [NSString stringWithFormat:@"fb%@://authorize",kAppId];

        BOOL bSchemeInPlist = NO; // find out if the sceme is in the plist file.

        NSArray* aBundleURLTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"];

        if ([aBundleURLTypes isKindOfClass:[NSArray class]] &&

            ([aBundleURLTypes count] > 0)) {

            NSDictionary* aBundleURLTypes0 = [aBundleURLTypes objectAtIndex:0];

            if ([aBundleURLTypes0 isKindOfClass:[NSDictionary class]]) {

                NSArray* aBundleURLSchemes = [aBundleURLTypes0 objectForKey:@"CFBundleURLSchemes"];

                if ([aBundleURLSchemes isKindOfClass:[NSArray class]] &&

                    ([aBundleURLSchemes count] > 0)) {

                    NSString *scheme = [aBundleURLSchemes objectAtIndex:0];

                    if ([scheme isKindOfClass:[NSString class]] &&

                        [url hasPrefix:scheme]) {

                        bSchemeInPlist = YES;

                    }

                }

            }

        }

        // Check if the authorization callback will work

        BOOL bCanOpenUrl = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString: url]];

        if (!bSchemeInPlist || !bCanOpenUrl) {

            UIAlertView *alertView = [[UIAlertView alloc]

                                      initWithTitle:@"Setup Error"

                                      message:@"Invalid or missing URL scheme. You cannot run the app until you set up a valid URL scheme in your .plist."

                                      delegate:self

                                      cancelButtonTitle:@"OK"

                                      otherButtonTitles:nil,

                                      nil];

            [alertView show];

            [alertView release];

        }

    }

 

热点排行