Flutter WebView Плагин ошибка на Android 9 - PullRequest
0 голосов
/ 13 октября 2019

Я занимаюсь разработкой приложения для Android, в котором есть плагин Flutter WebView для отображения веб-страницы. Он отлично работает на моем телефоне (Android 8.1 LG V20). но на телефоне моих друзей (Android 9 xiaomi note 7 pro) выдает эту ошибку: The webView error

Мой код: flutter_webview_plugin: ^0.3.8

 import 'package:flutter/material.dart';
 import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

 class WebPage extends StatefulWidget {
  final String url;

  WebPage({
    this.url,
  });
  @override
  _WebPageState createState() => _WebPageState();
}

class _WebPageState extends State<WebPage> {
  @override
  void initState() {
    super.initState();
    print('url = ' + widget.url);
  }
  @override
  Widget build(BuildContext context) {
    String link = widget.url;
    return WebviewScaffold(
      url: link,
      appBar: new AppBar(
        centerTitle: true,
        backgroundColor: Colors.green,
      ),
      displayZoomControls: true,
    );
  }
}

Любая помощьбудет оценена.

1 Ответ

1 голос
/ 13 октября 2019

Ваш друг видит эту ошибку, потому что по умолчанию на Android 9 и выше было объявлено незаконным подключение к http доменам, которые Google считает небезопасными.
Вместо этого у вас есть 3 варианта.

https

Используйте вариант https вашего сайта.
Вместо загрузки http://window.arian.co.ir load https://window.arian.co.ir

Отказаться от вашего домена.

Вы можетеотказаться от проверки безопасности для домена window.arian.

Создайте файл с именем network_security_config.xml и поместите его в папку res/xml/ папки android.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">window.arian.co.ir</domain>
    </domain-config>
</network-security-config>

Полностью отключите

Если вы хотитеВы можете отказаться от этой проверки безопасности для всех сайтов внутри WebView, поместив android:usesCleartextTraffic="true" на тег Application.

В папке android перейдите к AndroidManifest.xml

<application
        android:name="io.flutter.app.FlutterApplication"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true">

См. Документацию:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...