lleo (lleo) wrote,
lleo
lleo

Category:

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

это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/07/24_cordova

UPD: Вопрос решен, спасибо умным людям: Igor Podlesny, SergeyBarvinenko, Sergey Batishchev. Как я и надеялся, у Андроида осталась опция, которую можно указать, чтобы приложение все еще могло работать с http. Подробности: https://stackoverflow.com/a/54752717 и
https://stackoverflow.com/questions/54752716/why-am-i-seeing-neterr-cleartext-not-permitted-errors-after-upgrading-to-cordo

Магия состоит в том, чтобы добавить в config.xml некоторые магические заклинания. Тэг widget должен стать таким:

<widget id="me.lleo.yestarday4duk" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android".
xmlns:cdv="http://cordova.apache.org/ns/1.0">

Ранее там было: xmlns=«http://www.w3.org/ns/widgets» xmlns:cdv=«http://cordova.apache.org/ns/1.0"

А в секцию

<platform name="android">
следует добавить:

<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
    <application android:usesCleartextTraffic="true" />
</edit-config>

БЫЛО:

Блять, стоило мне отвлечься на пару лет и установить заново весь софт с Андроид-студией на eka-ноутбук, как там опять что-то поменялось в политиках! Теперь собираю приложение, и оно отказывается работать с любыми внешними источниками данных (от mp3 и вебрадио до Ajax/XHR), если ссылка http, а не https. С https все работает как прежде, а вот http, похоже, теперь запрещен. Они не охуели ли требовать от мира шифровать публичные аудиопотоки, например? Кому это полезно, тратить лишние киловатты, мегабайты и процессорные силы по обе стороны соединения, чтобы шифровать данные, которые публичны для всех? А если я хочу написать приложение, чтобы в нем звучал, допустим, поток вещания из источника, у которого не имеется https-ссылки? Или приложению во время работы надо бегать за табличными данными на некие чужие сайты или даже устройства, где нет и никогда не было https, и даже самой технической возможности SSL не предусмотрено?

Где это и в каких политиках можно включить снова?

В index.html пробовал прописывать и так:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src *; img-src *; font-src 'self' data:; media-src *; connect-src *;">

И так:

<meta http-equiv="Content-Security-Policy" content="default-src *;      script-src 'self' 'unsafe-inline' 'unsafe-eval';  style-src 'self' 'unsafe-inline'; ">

В config.xml в полях cordova-plugin-whitelist тоже все разрешения имеются:

<plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />

В чем проблема? Где и когда Google или Cordove сменили правила игры относительно http?



это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/07/24_cordova
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment