在Android 11 (API 30)上flutter的url_launcher插件打开外部画面没什么反应。调查了一番,

发现canLaunch方法会返回false。解决办法是往AndroidManifest.xml加入一下配置。注意是往<manifest>里面加,不是加到<application>里面。

    <!-- Nest within the manifest element, not the application element-->
    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
        </intent>
    </queries>

还有一种方法是加入下面的权限,不过我还没测试过。

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

 如果加入queries后编译出错,确认一下android/build.gradle里面的gradle插件版本是不是低于3.5.4。

classpath 'com.android.tools.build:gradle:3.5.4'

参考网站:

https://stackoverflow.com/questions/65883844/flutter-url-launcher-is-not-launching-url-in-release-modeicon-default.png?t=L892https://stackoverflow.com/questions/65883844/flutter-url-launcher-is-not-launching-url-in-release-mode

https://github.com/flutter/flutter/issues/63727icon-default.png?t=L892https://github.com/flutter/flutter/issues/63727

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐