Открыть файл .mobileconfig, сохраненный в приложении в Safari ios

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

NSURL *finalURL = [NSURL URLWithString:[NSString stringWithFormat:@"myAppURLScheme://%@",fileName]]; BOOL canOpen = [[UIApplication sharedApplication] openURL:finalURL]; if (canOpen) NSLog(@"can open"); else NSLog(@"can't open"); 

log -> can open

и я пытаюсь установить весь путь (файл находится в папке « Documents ») в файл вместо fileName, ничего. как мне это сделать. ?

Edit1 : это приложение делает то же самое (открыть сафари для установки конфигурации)

Edit2 : Я думаю, что мне нужно искать способ отправить файл (любой) на сафари, и сафари узнают, что с ним делать.

4 Solutions collect form web for “Открыть файл .mobileconfig, сохраненный в приложении в Safari ios”

  1. Авторизовать фоновое задание

.h файл:

 UIBackgroundTaskIdentifier bgTask; 

.m file: В applicationDidEnterBackground добавить новую фоновое задание:

 bgTask = [application beginBackgroundTaskWithExpirationHandler: ^{ dispatch_async(dispatch_get_main_queue(), ^{ [application endBackgroundTask:self->bgTask]; self->bgTask = UIBackgroundTaskInvalid; }); }]; 
  1. Добавить CocoaHTTPServer в свой проект

  2. Запустите сервер и откройте файл .mobileconfig:

      RoutingHTTPServer *httpServer = [[RoutingHTTPServer alloc] init]; [httpServer setType:@"_http._tcp."]; [httpServer setPort:12345]; [httpServer setDefaultHeader:@"Content-Type" value:@"application/x-apple-aspen-config"]; [httpServer setDocumentRoot:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]]; if([httpServer start:nil]) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://localhost:12345/myprofile.mobileconfig"]]; } 

Файл мобильной конфигурации находится в изолированной программной среде вашего приложения . Safari не имеет к нему доступа. Возвращаемое значение [UIApplication openURL] указывает только на наличие приложения, которое понимает эту схему URL . Мне кажется, что вы отправляете этот URL-адрес себе, предполагая, что вы добавили myAppURLScheme в качестве обработчика uri в свой файл info.plist .

Я думаю, вы можете использовать URI данных для кодирования и запуска mobileconfig. (У меня здесь нет устройства IOS, поэтому я не могу проверить прямо сейчас_

Вы можете использовать http://dopiaza.org/tools/datauri/index.php для кодирования вашего профиля (не забудьте добавить тип mime: application / x-apple-aspen-config)

Затем вы можете открыть:

 [[UIApplication sharedApplication] openURL:dataURLGenerated]; 

вполне не повезло, но я публикую это в любом случае, если кто-то другой может использовать эту информацию. Я попытался открыть строку через data: url, который поддерживается Mobile Safari, но не openURL: – к сожалению.

 NSString *urlHeader = @"data:application/x-apple-aspen-config;charset=utf-8,"; NSString *mobileConf = @"<?xmlversion=\"1.0\"encoding=\"UTF-8\"standalone=\"yes\"?>" "<!DOCTYPEplistPUBLIC\"-//Apple//DTDPLIST1.0//EN\"\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" "<plistversion=\"1.0\"><dict><key>PayloadUUID</key><string>A0670934-C558-42E1-9E80-9B8E079E9AB2</string><key>PayloadDisplayName</key><string>EnableTethering</string><key>PayloadDescription</key><string>EnablesTethering</string><key>PayloadOrganization</key><string>de.iphone-notes</string><key>PayloadVersion</key><integer>1</integer><key>PayloadIdentifier</key><string>de.iphone-notes.etisalat</string><key>PayloadType</key><string>Configuration</string><key>PayloadContent</key><array><dict><key>PayloadUUID</key><string>C1A41907-0CD9-4DC9-BAF1-A04A73B7E296</string><key>PayloadDisplayName</key><string>AdvancedSettings</string><key>PayloadDescription</key><string>ProvidescustomizationofcarrierAccessPointName.</string><key>PayloadOrganization</key><string>de.sendowski</string><key>PayloadVersion</key><integer>1</integer><key>PayloadIdentifier</key><string>de.iphone-notes.etisalat.apn</string><key>PayloadContent</key><array><dict><key>DefaultsDomainName</key><string>com.apple.managedCarrier</string><key>DefaultsData</key><dict><key>apns</key><array><dict><key>apn</key><string>Etisalat.ae</string><key>username</key><string></string><key>password</key><string></string><key>type-mask</key><integer>-2</integer></dict></array></dict></dict></array><key>PayloadType</key><string>com.apple.apn.managed</string></dict></array></dict></plist>"; mobileConf = [mobileConf stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSURL *finalURL = [NSURL URLWithString:[urlHeader stringByAppendingString:mobileConf]]; BOOL canOpen = [[UIApplication sharedApplication] openURL:finalURL]; if (canOpen) NSLog(@"can open"); else NSLog(@"can't open"); 

Для тестирования вы можете добавить http:// перед data: тогда он, по крайней мере, откроется в Safari, и вы можете удалить префикс, чтобы попробовать его. Возможно, будет использована javascript-инъекция для удаления префикса; Я не знаю.

  • Политика кэширования iOS
  • Как я могу вручную переключаться между UIViewControllers в раскадровке?
  • iPhone GPS - Не получать достоверные обновления местоположения
  • Очереди NSRunLoop и GCD
  • Сбой сборки AppStore при запуске на iPhone 3g и iPod Touch
  • Как совместить дату и время с двумя UIDatePickers?
  • Динамическая ячейка таблицы
  • Невозможно изменить язык MFMailComposer?
  • Повторное использование ячеек UITableViewCell и динамическое масштабирование автоматической компоновки UILabel
  • Подтвердить автозаполнение UITextview
  • 2 похожих приложения для iOS - как лучше их управлять?
  • Interesting Posts

    Анализ XML из NSString для получения значений

    Как быстро переключить контроллеры представлений?

    Создание WebRtc на iOS

    iOS 8 пользовательская кнопка удержания клавиатуры для удаления?

    Элементы сдвига в массиве по индексу

    Буфер обмена официально называется «картон» на iOS?

    Создайте универсальное приложение для iOS 3.0 с помощью Xcode 4.3.x – Исключение NSKeyedUnarchiver

    Как загрузить пакет изображений в scrollview с прокруткой horrizondal в iphone?

    Загрузите документацию iOS SDK 7.0 для автономной установки

    Как протестировать глубокую привязку к iOS с помощью SauceLabs и Appium и Cucumber

    iOS: настройка TableViewCell – инициализация пользовательской ячейки

    Расширение ячеек таблицы в IOS 7

    Добавьте ограничения на кнопку в быстром (учебное пособие по iOS для Apple)

    iPhone: обнаружение Tap в MKMapView

    Установка цвета штриха текста заголовка в внешнем виде UINavigationBar

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.