Белый экран в inappwebview после возобновления работы приложения из фонового режима на Android и iOS?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Белый экран в inappwebview после возобновления работы приложения из фонового режима на Android и iOS?

Сообщение Anonymous »

Когда я закрываю приложение примерно на минуту, а затем перемещаю его в фоновый режим перед возобновлением, виджет InAppWebView покрывается белым наложением или просто не отображает веб-содержимое на экране. Я все еще могу взаимодействовать со страницей, которая была загружена до приостановки приложения, и слышу звуковые эффекты, которые воспроизводятся на сайте, так что он определенно все еще каким-то образом активен. Я просто не понимаю, как мне заставить его ПОКАЗАТЬ страницу, когда я возобновляю работу приложения. Консоль отладки не показывает ничего необычного, когда я снова открываю приложение после приостановки; это тот же результат, что и тогда, когда InAppWebView был фактически видим.
Я попытался создать базовую реализацию InAppWebView в своем приложении, используя другой URL-адрес, запустив flutter clean, запустив flutter pub. обновление, запуск флаттера паба с понижением версии, но проблема все еще возникает. Вот код страницы.
class CustomWebView extends StatefulWidget {
final String url;

CustomWebView({required this.url});

@override
_CustomWebViewState createState() => _CustomWebViewState();
}

class _CustomWebViewState extends State
with SingleTickerProviderStateMixin, WidgetsBindingObserver {
bool _isLoading = true; // Initially, webview is loading
late InAppWebViewController webcontroller;

@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
return InAppWebView(
key: Key('webview'),
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
transparentBackground: true,
useShouldOverrideUrlLoading: true,
supportZoom: true,
),
android: AndroidInAppWebViewOptions(
builtInZoomControls: true,
loadWithOverviewMode: true,
useWideViewPort: true,
),
ios: IOSInAppWebViewOptions(
disableInputAccessoryView: true,
allowsInlineMediaPlayback: true,
),
),
initialUrlRequest: URLRequest(url: Uri.parse(widget.url)),
shouldOverrideUrlLoading: (controller, navigationAction) async {
var uri = navigationAction.request.url!;
if (uri.toString().contains('logout')) {
logOut(context);
return NavigationActionPolicy.CANCEL;
}
if (uri.toString().contains('whatsapp')) {
var shareText = await getTextParam(uri.toString());
Share.share(shareText!);
return NavigationActionPolicy.CANCEL;
}
if (uri.toString().contains('?process_s=3')) {
var status = await Permission.storage.status;
if (!status.isGranted) {
status = await Permission.storage.request();
}
if (status.isGranted) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => GenerateQRPage(
url: '',
)));
}
return NavigationActionPolicy.CANCEL;
}

return NavigationActionPolicy.ALLOW;
},
onWebViewCreated: (InAppWebViewController controller) {
webcontroller = controller;
},
onLoadStop: (controller, url) async {},
);
}
}


Подробнее здесь: https://stackoverflow.com/questions/780 ... roid-and-i
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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