Flutter WebView показывает белый экран на iOSIOS

Программируем под IOS
Ответить
Anonymous
 Flutter WebView показывает белый экран на iOS

Сообщение Anonymous »

Я хочу использовать WebView во Flutter для загрузки страницы активации кода от Apple, чтобы мой пользователь мог использовать скидки на подписки. Например, такие страницы, как Google, Flutter.dev... работают нормально, но, к сожалению, использование URL-адреса Apple не поможет. У меня в теле просто пустой белый экран - панель приложений работает нормально. Что может быть не так?

Код: Выделить всё

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:webview_flutter/webview_flutter.dart';
import '../../configuration/theme.dart';

class FumiProPromoPage extends StatefulWidget {
String code;
//Variable Code übergeben
FumiProPromoPage({
Key? key,
required this.code,
}) : super(key: key);

@override
State createState() => _FumiProPromoPageState();
}

class _FumiProPromoPageState extends State {
var loadingPercentage = 0;
late WebViewController controller;
final GlobalKey webViewKey = GlobalKey();

String promourl = "https://google.de";
String url = "";
double progress = 0;
final urlController = TextEditingController();

@override
void initState() {
super.initState();
promourl = 'https://apps.apple.com/redeem?ctx=offercodes&id=xxxxxxxx&code=${widget.code}';
print(promourl);

controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(const Color(0x00000000))
..setNavigationDelegate(
NavigationDelegate(
onProgress: (int progress) {
// Update loading bar.
},
onPageStarted: (String url) {},
onPageFinished: (String url) {},
onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith('https://www.youtube.com/')) {
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
)
..loadRequest(Uri.parse(promourl));
}
Widget build(BuildContext context) {

return Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: fumigruenAccent,
title: const Text(
"Promocode einlösen",
style: TextStyle(
color: Colors.black,
),
),
leading: CloseButton(
color: Colors.black,
onPressed: () {
Navigator.of(context).pop();
},
),),

body:

Stack(
children: [
WebViewWidget(
controller: controller,
),

loadingPercentage < 100
? LinearProgressIndicator(
color: Colors.red,
value: loadingPercentage / 100.0,
)
: Container()
],
),
);
}
}
Я также отключил функцию Apple Transport Security (ATS) для http-запросов, чтобы выяснить, в этом ли проблема. К сожалению, это не сработало.
Для этого я добавил следующие строки в свой Info.plist

Код: Выделить всё

NSAppTransportSecurity

NSAllowsArbitraryLoads

Есть идеи? заранее большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/784 ... een-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»