Может ли приложение iOS переключиться на Safari без открытия страницы? - PullRequest
1 голос
/ 25 июля 2011

Я знаю, что мое приложение может открыть определенный URL в Safari, выполнив что-то вроде этого:

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

, но есть ли способ заставить мое приложение переключиться на Safari без открыть URL-адрес?

Я бы хотел переключиться на Safari, но пусть он будет показывать любую открытую страницу в последний раз, когда пользователь на него смотрел.

1 Ответ

3 голосов
/ 25 июля 2011

К сожалению, нет, если вы не можете выяснить, как запустить приложение по идентификатору пакета в среде без джейлбрейка.

В противном случае, если вы находитесь в среде джейлбрейка, вы можете использовать следующую команду для запускаприложение по идентификатору пакета:

Использование:

[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];
    }
}

Примечание:

ЗапускПриложение таким образом, в основном, аналогично нажатию на значок Safari в SpringBoard.Это только запустит в приложение, возобновив любой веб-сеанс, который был ранее активен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...