Схема URL iOS, вернитесь в Safari, когда закончите - PullRequest
3 голосов
/ 07 августа 2011

Я хотел бы реализовать собственную схему URL, аналогичную тому, как работает mailto в Safari. В моем html-файле есть ссылка на мою пользовательскую схему (например, myapp: // parms), которая будет вызывать мое приложение с определенной схемой myapp. Когда myapp готов, я хочу вернуться на страницу браузера Safari. Если у вас есть «mailto:», почтовое приложение имеет кнопку отмены. Если вы нажмете это или сделаете отправку, когда она будет завершена, она исчезнет, ​​и страница Safari окажется там.

Я знаю, что я не должен убивать мое приложение. Если я попробую, то все равно вернется домой, а не в Safari. Как я могу сделать так, чтобы мое приложение с пользовательской схемой исчезло (скрылось?), Когда это произойдет, чтобы вызывающее приложение вернулось?

Ответы [ 2 ]

4 голосов
/ 07 августа 2011

У вас может быть схема, указывающая URL-адрес обратного вызова, который вы открываете, когда заканчиваете выполнять свою задачу. Например,

myapp://dosomeaction?callback=http://referring-site.com

Тогда вы просто прочитаете URL обратного вызова и наберете openURL:. Вы могли бы даже добавить некоторые дополнительные параметры, указывающие на успех / неудачу для звонящего.

3 голосов
/ 07 августа 2011

Лучше всего было бы передать URL-адрес, на который вы хотите вернуться, в URL-адресе с пользовательской схемой.Другими словами, вы должны были бы URL кодировать URL-адрес «обратного вызова» и поместить его в качестве элемента в URL-адресе, используемом для открытия вашего приложения.

Когда ваше приложение выполняет свои задачи, оно использует эти данные, полученные прион был открыт для повторного открытия URL с использованием метода [[UIApplication sharedApplication] openURL: yourURL].

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