Я разрабатываю (и близок к выпуску) приложение Cordova для iOS и Android.
Я пытаюсь использовать cordova-plugin-ionic-webview, чтобы использовать новейшие движки WebView.
Я могу использовать этот плагин на iOS, но на Android приложение вылетает при запуске.
МОЙ CONFIG.XML:
<allow-navigation href="cordovaios://*" />
<allow-navigation href="cordovaandroid://*" />
<plugin name="cordova-plugin-ionic-webview" spec="^4.0.0">
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
</plugin>
<preference name="Hostname" value="my-backend-url-to-avoid-CORS.com" />
<preference name="iosScheme" value="cordovaios" />
<preference name="Scheme" value="cordovaandroid" />
<preference name="ScrollEnabled" value="true" />
<preference name="MixedContentMode" value="0" />
<preference name="AllowBackForwardNavigationGestures" value="true" />
<preference name="Allow3DTouchLinkPreview" value="false" />
<preference name="WKSuspendInBackground" value="false" />
<preference name="KeyboardAppearanceDark" value="false" />
ЖУРНАЛЫ:
5726-5770/mycertificate.enterprise D/SERVER: Обработка локального запроса: cordovaandroid://my-backend-url-to-avoid-CORS.com/static/js/10.601e7973.chunk.js
5726-5773/mycertificate.enterprise E/chromium: [ОШИБКА: render_process_host_impl.cc(4070)] Завершение процесса рендеринга для плохого сообщения Mojo: получено плохое сообщение пользователя: происхождение недействительно
5726-5773/mycertificate.enterprise E/chromium: [ОШИБКА: bad_message.cc(23)] Завершение рендерера для плохого сообщения IPC, причина 123
НОТА:
Этот конфиг отлично работает на iOS. На Android я не могу использовать этот плагин из-за этой проблемы с именем хоста/источником.
Эта пользовательская схема не поддерживается (просто попробуйте найти что-то похожее в исходном коде). Это также за пределами моего понимания, для чего даже нужно было бы зарегистрировать пользовательский обработчик протокола, не выходя из этого WebView
? Обычная цель: открыть другое приложение.
<preference name="Scheme" value="https" />
<allow-navigation href="https://my-backend-url-to-avoid-CORS.com/*"/>
К сожалению, между версией Android-платформы Cordova и версиями плагинов существует большое несоответствие, что приводит к пустой трате времени. Сказав это, для схожих проблем, которые у меня были, я просто исправил понижение версии Cordova, Android или Plugin (или используйте ту же версию android, которую использует плагин в своем примере кода).
Hostname
должна указывать на локальную доставку ... так, чтобы ее можно было различить, даже без специального обработчика протокола. Единственным недостатком является то, что нельзя использовать это (просто локальное) имя хоста для чего-либо еще. кажется, что это веб-сервер для локальных ресурсов ... который даже не выглядит так, как если бы он мог избежать CORS, если только он не будет извлекать данные в другом месте.