Ionic InAppBrowser на iOS Ошибка загрузки белого пустого экрана - PullRequest
0 голосов
/ 05 июня 2018

Я некоторое время работал с InAppBrowser и не сталкивался с этой проблемой раньше.Он загружал мой URL, а теперь, похоже, не хочет этого делать.

Сначала я правильно импортировал InAppBroswer, он работает на 100% на Android.Это проблема только для iOS.

в моем config.xml:

<access origin="https://www.mydomain.or/*" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<!-- Call to Plugins -->
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="2.0.5" />
<plugin name="cordova-plugin-inappbrowser" spec="^3.0.0" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-app-update" spec="^1.6.0" />
<plugin name="cordova-plugin-app-version" spec="^0.1.9" />
<engine name="android" spec="~7.0.0" />
<engine name="ios" spec="~4.5.4" />

Кажется, что мои плагины работают нормально, без ошибок или ошибок компиляции.

Я звонюбраузер в соответствии с их документацией:

//construct the instance of browser we are using to launch with Ionic Native
const browser = this.iab.create('https://www.mydomain.or', '_blank','location=no');
//If Browser is Hidden Display
browser.show();

В консоли для WKWebView не сообщается ни о каких ошибках, но я получаю это изображение ниже как на симуляторе, так и на устройстве.iOS Error

Действия, предпринятые для решения этой проблемы: Securty Steps для iOS, WhiteList добавлен в плагины - см. Выше список плагинов.Я добавил проверки в файл plist:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>localhost</key>
    <dict>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
    <key>www.mydomain.or</key>
    <dict/>
  </dict>
</dict>

Известно, что это помогло решить подобные проблемы в прошлом.Я также добавил метатег в свой индекс, так как это помогло другим и в прошлом:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; style-src 'self’; connect-src https://www.mydomain.or; script-src 'self’; media-src *">

Это также не помогло мне вообще.Любой, кто может знать, в чем причина этого, будет очень полезен.Я чувствую, что нахожусь в своем уме с этой ошибкой и хочу быть в состоянии решить эту проблему, но знаю основную причину, по которой это происходит, и избегать ее в будущем.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

РЕШЕНО Мне удалось решить эту проблему, добавив:

<meta http-equiv="Content-Security-Policy" content="default-src gap://ready file://* *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *”>

Это добавлено в заголовок вашего файла index.html.Мой вышеупомянутый вопрос явно имеет некоторые синтаксические ошибки в этом, но не вызовет ошибку при сборке на Android или iOS.

Однако вы можете добавить инструмент Build, чтобы написать скрипт для проверки этого тега в вашем index.html.

0 голосов
/ 05 июня 2018

До недавнего времени я боролся с этой проблемой.

В config.xml

    <allow-navigation href="*" />

Этот тег, похоже, решает эту проблему.

--- обновление -

info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
...