1

次のようなことを行うことで、アプリが Safari で特定の URL を開くことができることを知っています。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.example.com/"]];

しかし、 URL を開かにアプリを Safari に切り替える方法はありますか?

Safari に切り替えたいのですが、ユーザーが最後に閲覧したときに開いていたページを表示し続けます。

4

1 に答える 1

3

残念ながら、ジェイルブレイクされていない環境でバンドル ID によってアプリを起動する方法を理解できない限り、できません。

それ以外の場合、ジェイルブレイクされた環境にいる場合は、次を使用してバンドル ID でアプリを起動できます。

使用法:

[self launch:(@"com.apple.mobilesafari")];

コード:

#pragma mark - Launch Application

-(void)launch:(NSString *)bundle {
    Class SBApplicationController = objc_getClass("SBApplicationController");
    id appController = [SBApplicationController sharedInstance];
    NSArray *apps = [appController applicationsWithBundleIdentifier: bundle];
    if ([apps count] > 0) {
        //Wait .5 seconds.. then launch.
        [self performSelector:@selector(launchTheApp:) withObject:[apps objectAtIndex:0] afterDelay: 0.5]; 
    } else {
        id app = [appController applicationWithDisplayIdentifier: bundle];
        if (app) {
            //Wait .5 seconds.. then launch.
            [self performSelector:@selector(launchTheApp:) withObject:app afterDelay: 0.5];
        }
    }
}
-(void)launchTheApp:(id)app {
    Class SBUIController = objc_getClass("SBUIController");
    id uiController = [SBUIController sharedInstance];
    if([uiController respondsToSelector:@selector(animateLaunchApplication:)]) {
        [uiController animateLaunchApplication:app animateDefaultImage:YES];
    } else {
        [uiController activateApplicationAnimated:app];
    }
}

ノート:

この方法でアプリを起動することは、SpringBoard で Safari アイコンをタップすることと基本的に同じです。これはアプリのみを起動し、以前にアクティブだった Web セッションを再開します。

于 2011-07-25T19:51:09.297 に答える