Конфигурация профиля установки на iPhone Программно

Я реализовал код, указанный в ссылке ниже, чтобы программно установить профиль в iPhone. а также Установлен локальный сервер типа RoutingHTTPServer.

/questions/27569529/ustanovka-profilya-konfiguratsii-na-iphone-programmno/27569548#27569548

Ниже приведен код по ссылке выше,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    _httpServer = [[RoutingHTTPServer alloc] init];
    [_httpServer setPort:8000];                               // TODO: make sure this port isn't already in use

    _firstTime = TRUE;
    [_httpServer handleMethod:@"GET" withPath:@"/start" target:self selector:@selector(handleMobileconfigRootRequest:withResponse:)];
    [_httpServer handleMethod:@"GET" withPath:@"/load" target:self selector:@selector(handleMobileconfigLoadRequest:withResponse:)];

    NSMutableString* path = [NSMutableString stringWithString:[[NSBundle mainBundle] bundlePath]];
    [path appendString:@"/your.mobileconfig"];
    _mobileconfigData = [NSData dataWithContentsOfFile:path];

    [_httpServer start:NULL];

    return YES;
}

- (void)handleMobileconfigRootRequest:(RouteRequest *)request withResponse:(RouteResponse *)response {
    NSLog(@"handleMobileconfigRootRequest");
    [response respondWithString:@"<HTML><HEAD><title>Profile Install</title>\
     </HEAD><script> \
     function load() { window.location.href='http://localhost:8000/load/'; } \
     var int=self.setInterval(function(){load()},400); \
     </script><BODY></BODY></HTML>"];
}

- (void)handleMobileconfigLoadRequest:(RouteRequest *)request withResponse:(RouteResponse *)response {
    if( _firstTime ) {
        NSLog(@"handleMobileconfigLoadRequest, first time");
        _firstTime = FALSE;

        [response setHeader:@"Content-Type" value:@"application/x-apple-aspen-config"];
        [response respondWithData:_mobileconfigData];
    } else {
        NSLog(@"handleMobileconfigLoadRequest, NOT first time");
        [response setStatusCode:302]; // or 301
        [response setHeader:@"Location" value:@"yourapp://custom/scheme"];
    }
}

... и вот код для вызова этого из приложения (т.е. viewcontroller):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://localhost:8000/start/"]];

В основном здесь установлен один локальный сервер. Я довольно близко, чтобы добиться цели. Моя проблема в том, что когда я запускаю приложение, сначала оно открывает пустую страницу в Safari, а затем, когда я возвращаюсь в приложение, оно перенаправляет меня на страницу установки профиля. Есть идеи, почему это происходит? Смертельно застрял здесь. Любая помощь приветствуется. Почему изначально он открывает пустую страницу в сафари? Пробовал несколько вещей, но пока не повезло. Пожалуйста, помогите мне.

Я хочу перенаправить прямо на страницу установки профиля.

1 ответ

Это открывает пустую страницу в сафари, потому что вы говорите это. Это в вашем коде: <BODY></BODY>пустая страница. Поместите вещи между этими тегами, если они не должны быть пустыми.

Используйте отладчик. Вы когда-нибудь добирались до этой линии?

NSLog(@"handleMobileconfigLoadRequest, NOT first time");

Другие вопросы по тегам