[英]Flutter dart : Url launcher Not throw error Page
我故意輸入錯誤的 url 這樣我就可以看到我的錯誤頁面,但它沒有顯示任何內容
這是我的代碼
class DetailPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
// final Uri _url = Uri.parse('https://goo.gl/maps/HiKcRmtjE2if58aw7');
final Uri _url = Uri.parse('adjja');
final Uri _wa = Uri.parse('https://wa.me/62895378147657');
Future<void> _launchUrl() async {
if (!await launchUrl(_url)) {
throw Navigator.push(
context, MaterialPageRoute(builder: (context) => ErrorPage()));
}
}
使用 try 和 catch 塊來處理錯誤,因為由於 package 中的一些未解決的意圖問題,它無法拋出錯誤。 此外,在導航時,您應該只使用 push function 而不是像以下代碼那樣的 throw 前綴:-
Future<void> _launchUrl() async {
try {
await launchUrl(_url);
} catch (e) {
Navigator.push(
context, MaterialPageRoute(builder: (context) => ErrorPage()));
}
}
刪除拋出,您可以使用 canLaunchUrl 方法檢查 url 是否有效
if (await canLaunchUrl(url)) {
await launchUrl(
url,
mode: _useWebView
? LaunchMode.inAppWebView
: LaunchMode.externalApplication,
);
} else {
Navigator.push(
context, MaterialPageRoute(builder: (context) => ErrorPage()));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.