Flutter 使用 url_launcher的canLaunchUrl() 方法总是返回false错误

Flutter 使用 url_launcher的canLaunchUrl() 方法总是返回false错误

众所周知,我们一般使用url_launcher来打开各种应用,网页,手机应用等....

但是最近发现Flutter的canLaunchUrl()方法总是返回false,这是为什么呢?

原因:

自从Android SDK 30 或 以上为了更加安全,需要在AndroidManifest.xml声明可访问包名和scheme

总的来说,现在Android也类似于IOS一样,需要事先声明打开其他APP的通道可包名了

解决办法:

以高德地图,百度地图为例:

AndroidManifest.xml

xml 复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="xxxxxx">

         <queries>
                 <!-- 需要检查的包名 -->

                <!-- 高德地图 -->
                <package android:name="com.autonavi.minimap" />  
                <!-- 百度地图 -->
                <package android:name="com.baidu.BaiduMap" />  

                <!-- Scheme匹配 -->
                <!-- 高德地图scheme -->
                <intent>
                        <action android:name="com.autonavi.minimap" />
                        <data android:scheme="amap" />
                </intent>
                <!-- 百度地图scheme -->
                <intent>
                        <action android:name="com.baidu.BaiduMap" />
                        <data android:scheme="baidumap" />
                </intent>
        </queries>

声明后,canLaunchUrl()便会返回true,即可打开APP,使用其功能

相关推荐
好的佩奇13 小时前
Dart 之增强枚举
android·flutter·dart
好的佩奇16 小时前
蓝牙之无线电与通信距离
android·flutter·蓝牙
程序员老刘·2 天前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·跨平台开发
传奇开心果编程2 天前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
程序员老刘3 天前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·客户端
恋猫de小郭3 天前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter
好的佩奇3 天前
Dart 之类修饰符
android·flutter·dart
好的佩奇014 天前
Dart 之类修饰符
android·flutter·dart
Jewel1054 天前
文字为什么总是不居中!记录一个bug
android·flutter·ios
2601_949847755 天前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter