Сервисные рабочие недоступны в WKWebView в iOS 11.3

Сервисные работники были доступны в WKWebView в бета-версиях iOS 11.3, но, по-видимому, недоступны в финальной версии GM для iOS 11.3.

Кто-нибудь знает, как повторно включить Service Workers в WKWebView на iOS?

1 ответ

Сервисные работники в WKWebView Теперь требуется право:

com.apple.developer.WebKit.ServiceWorkers, который должен быть добавлен к .entitlements Плист как Boolean со значением YES,

В настоящее время это будет работать только в iOS Simulator до тех пор, пока Apple не обновит портал Apple Developer Portal, чтобы можно было создавать идентификаторы приложений и профили обеспечения, содержащие это право.

Для получения дополнительной информации см. Эту ошибку: https://bugs.webkit.org/show_bug.cgi?id=182865 и связанный набор изменений: https://trac.webkit.org/changeset/228933/webkit

введите описание изображения здесь

Это право теперь доступно в iOS 14 (com.apple.developer.web-browser). В связи с тем, что Apple теперь позволяет использовать другие браузеры по умолчанию, доступно новое разрешение, которое также включает сервисных работников!!!

Обновленную документацию можно найти здесь:Apple Docs

Следующая интересная часть:

Использование возможностей браузера по умолчанию

- Приложения, использующие управляемое право com.apple.developer.web-browser, могут:

- Возможность выбора пользователем в качестве браузера по умолчанию.

- Загружать страницы со всех доменов с полным доступом к скриптам.

- Используйте Service Workers в экземплярах WKWebView.

Но у этого есть большие недостатки. Универсальные ссылки больше не работают, и есть список запрещенных ключей для info.plist (см. Ссылку).

Может ли кто-нибудь уже подтвердить наличие WKWebview, используя это право в магазине приложений?


ОБНОВИТЬ:

Лучшим решением может быть использование доменов, привязанных к приложениям.

Это работает до 10 доменов, и вы ограничиваете свой WKWebview этими доменами! Это не сработает для других сайтов. Вам не обязательно владеть доменом.

Добавьте к вам WKWebviewConfiguration:

let configuration = WKWebViewConfiguration()
configuration.limitsNavigationsToAppBoundDomains = true

В свой информационный лист добавьте ключ с WKAppBoundDomains:

<key>WKAppBoundDomains</key>
<array>
  <string>example.com</string>
  <string>example2.com</string>
</array>

После быстрого теста это вернулось 'serviceWorker' in navigator === true. Если это пройдет через процесс проверки, это может стать прорывом для PWA!!!!

Есть новости об этой проблеме? Тем не менее, com.apple.developer.WebKit.ServiceWorkers не считают доступным правом в идентификаторах приложений на портале для разработчиков.

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