我正在 Flutter 中开发 WebView 移动应用程序,我想自定义 webview 错误,因为如果客户将他的 wifi 关闭并且他得到“net::ERR_ADDRESS_UNREACHABLE”,那就不太好了。所以我想将此页面更改为一些自定义设计并显示类似“此应用程序需要互联网连接,您应该打开您的 wifi”之类的内容。
这样的事情可能吗?我在文档中搜索但一无所获。
非常感谢。
最佳答案
不确定我们是否可以修改 webview 本身显示的实际消息,但我已经使用了一个解决方法。
您可以使用 Stack 小部件,并在发生错误时在单独的小部件中显示自定义消息。示例代码如下。
Stack(
children: [
if (!controller.isError)
WebView(
javascriptMode: JavascriptMode.unrestricted,
initialUrl: "https://some-random-url.com",
onPageFinished: controller.onLoaded,
onWebResourceError: controller.onError,
),
if (controller.isLoading)
Center(
child: CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.black),
),
),
if (controller.isError)
Center(
child: Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
child: Text(
text: "Something went wrong, please try again",
),
),
)
],
),
你看到的Controller对象是我用来管理状态的GetX Controller ,你可以随意使用。主要 Action 元素是
isError
-> 监控是否发生错误的状态变量。WebView.onWebResourceError
-> 发生特定错误时调用的回调函数。 您可以将一个函数传递给它,并且只有在发生错误时才会调用此回调。这样,您就可以将状态变量isError
修改为 true,这将依次隐藏 webview 并在屏幕中央显示错误消息。
有了这个,您将拥有您正在寻找的错误处理。
PS:我知道我迟到了,但我希望其他人觉得它有用。
关于android - 是否可以自定义 Flutter Webview 错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489528/