簡體   English   中英

Flutter dart: Url launcher Not throw error Page

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM