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,使用其功能

相关推荐
Speed1231 分钟前
`mockito` 的核心“打桩”规则
flutter·dart
法的空间9 分钟前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios
恋猫de小郭31 分钟前
Android 将强制应用使用主题图标,你怎么看?
android·前端·flutter
玲珑Felone1 小时前
从flutter源码看其渲染机制
android·flutter
ALLIN21 小时前
Flutter 三种方式实现页面切换后保持原页面状态
flutter
Dabei21 小时前
Flutter 国际化
flutter
Dabei1 天前
Flutter MQTT 通信文档
flutter
Dabei1 天前
Flutter 中实现 TCP 通信
flutter
孤鸿玉1 天前
ios flutter_echarts 不在当前屏幕 白屏修复
flutter
前端 贾公子1 天前
《Vuejs设计与实现》第 16 章(解析器) 上
vue.js·flutter·ios