Как сделать перенос из родного приложения в веб-браузер?

Я прочитал документацию и понимаю, что с помощью Handoff я могу обмениваться данными между конкретным веб-сайтом и приложением.

У меня есть кураторский список элементов из различных RSS-каналов, все ссылки на разные сайты. Я хотел бы дать пользователю возможность открывать ссылку на элемент (например, кнопку "Еще") в Safari на своем Mac вместо Safari на своем iPhone.

Поскольку все ссылки будут из разных доменов, сертификаты на самом деле не применяются. Можно ли открыть Safari на Mac с определенным URL-адресом из приложения iOS с помощью Handoff? Я не мог понять из документации, была ли это возможность или нет.

1 ответ

Решение

Создайте объект NSUserActivity и укажите свойство webPageURL. Используйте тип активности, специфичный для вашего приложения. Если на Mac нет приложения, поддерживающего этот конкретный тип активности, тогда Safari поднимет его.

NSUserActivity* myActivity = [[NSUserActivity alloc]
                  initWithActivityType: @"com.company.acme.myapp"];

myActivity.webpageURL = [NSURL URLWithString:@"http://www.google.co.uk"];

Согласно документам для NSUSerActivity.webPageURL:

Если на возобновляемом устройстве не установлено подходящее приложение и задано свойство webpageURL, указанная веб-страница загружается, и действие пользователя продолжается в веб-браузере.

Оба потока (приложение-браузер и браузер-приложение) описаны в https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html

Ваш вопрос относится к разделу "Передача из собственного приложения в браузер".

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