cordova-plugin-ionic-webview - пользовательская схема не работает на Android

1

Я разрабатываю (и близок к выпуску) приложение 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 я не могу использовать этот плагин из-за этой проблемы с именем хоста/источником.

Теги:
ionic-framework
cordova
hybrid-mobile-app
cordova-plugins
phonegap-plugins

2 ответа

0

Эта пользовательская схема не поддерживается (просто попробуйте найти что-то похожее в исходном коде). Это также за пределами моего понимания, для чего даже нужно было бы зарегистрировать пользовательский обработчик протокола, не выходя из этого WebView? Обычная цель: открыть другое приложение.

<preference name="Scheme" value="https" />
<allow-navigation href="https://my-backend-url-to-avoid-CORS.com/*"/>
  • 0
    Проблема в том, что мне также нужно установить для параметра «Имя хоста» значение «my-backend-url-to-avoid-CORS.com», что означает, что запросы к нашему бэкэнду будут попадать на веб-сервер, работающий на устройстве и обслуживающий приложение, поэтому Мне нужен нестандартный источник.
  • 1
    @GaSacchi Конфигурация имени Hostname должна указывать на локальную доставку ... так, чтобы ее можно было различить, даже без специального обработчика протокола. Единственным недостатком является то, что нельзя использовать это (просто локальное) имя хоста для чего-либо еще. кажется, что это веб-сервер для локальных ресурсов ... который даже не выглядит так, как если бы он мог избежать CORS, если только он не будет извлекать данные в другом месте.
Показать ещё 2 комментария
0

К сожалению, между версией Android-платформы Cordova и версиями плагинов существует большое несоответствие, что приводит к пустой трате времени. Сказав это, для схожих проблем, которые у меня были, я просто исправил понижение версии Cordova, Android или Plugin (или используйте ту же версию android, которую использует плагин в своем примере кода).

  • 0
    Не могу пойти с таким подходом. Карточный домик (Cordova Plugins) может упасть ..
  • 0
    Нет, если вы сосредоточены на плагине, который не работает. К сожалению, у меня уже были настолько простые проблемы, как Cordova, изменяющая путь к выходному файлу, и плагин перестал работать. Суть моего ответа заключается в том, чтобы вы правильно поняли проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню