【问题标题】:Flutter apps crash upon webview loadedFlutter 应用程序在加载 webview 时崩溃
【发布时间】:2020-04-19 17:51:18
【问题描述】:

我正在尝试从我的 Flutter 应用程序 webView 打开支付 url 链接,但在输入输入字段时崩溃。

return Scaffold(
          body: new MyWebView(
            selectedUrl:"https://easternbank.ap.gateway.mastercard.com/checkout/pay/SESSION0002887307683L1130761K87",),
        );

我们的 MyWebView 小部件是:

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class MyWebView extends StatelessWidget {
  final String selectedUrl;
  final Completer<WebViewController> _controller =  Completer<WebViewController>();
  MyWebView({
    @required this.selectedUrl,
  });

  @override
  Widget build(BuildContext context) {
    bool isLoading = true;
    return StatefulBuilder(
        builder: (BuildContext context, StateSetter setState) {
          return Scaffold(
            body: Stack(
              children: <Widget>[
                //new LinearProgressIndicator(),
                new WebView(
                  initialUrl: selectedUrl,
                  javascriptMode: JavascriptMode.unrestricted,
                  onWebViewCreated: (WebViewController webViewController) {
                    _controller.complete(webViewController);
                  },
                  onPageFinished: (finised) {
                    setState(() {
                      isLoading = false;
                    });
                  },
                ),
                isLoading ? _loadingScreen() : Container(),
              ],
            ),
          );
        });
  }

安全支付页面的 webView 有什么问题吗?

这主要发生在尝试在页面中输入内容时

一些调试错误:

Build fingerprint: 'google/sdk_gphone_x86/generic_x86:9/PSR1.180720.075/5124027:user/release-keys'
Revision: '0'
ABI: 'x86'
pid: 10040, tid: 10040, name: cker.my_payment  >>> com.gomaxtracker.my_payment <<<
signal 4 (SIGILL), code 2 (ILL_ILLOPN), fault addr 0xd247d0d0
Abort message: '[FATAL:jni_android.cc(256)] Please include Java exception stack in crash report
'    eax 00000000  ebx d4e06e2c  ecx cbbe3320  edx 00000400
    edi ff9eefe8  esi ff9eebb8
    ebp ff9eeb71  esp ff9eeb70  eip d247d0d0
backtrace:
    #00 pc 023310d0  /system/app/Chrome/Chrome.apk (offset 0x1022000)

【问题讨论】:

  • 也包含MyWebView的代码
  • 现在我也已经包含了 MyWebView 小部件页面

标签: flutter webview


【解决方案1】:

安全支付页面的 webView 有什么问题吗?

没有。但是现在当网页中有 DropDown 时,它不起作用。

不幸的是,由于您的应用在下拉选择中崩溃,这个问题在官方插件中没有解决吗? 这个问题正在here 和here 讨论中,尚未修复,

所以我建议使用flutter_webview_plugin,

例子

 WebviewScaffold(
      url: "https://easternbank.ap.gateway.mastercard.com/checkout/pay/SESSION0002887307683L1130761K87",
      ),

【讨论】:

  • 它第一次加载得很好......如果尝试输入一些东西,它就会崩溃
  • 那么它必须在下拉列表中崩溃
  • 是的.. 当我们尝试填写月份或过期日期时,它会崩溃
  • 请检查我更新的答案,我自己测试过它有效
  • 但是如果我使用 WebViewScaffold() 它会与我的抽屉菜单重叠...有什么办法可以解决重叠问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
相关资源
最近更新 更多