当前位置:   article > 正文

Flutter Android 实现 APP跳转_安卓接收第三方app跳转参数

安卓接收第三方app跳转参数

一、APP 实现被打开

创建URL scheme

修改/app/src/mian/AndroidManifest.xml配置

配置  

scheme="xxxxxx"

android:host="xxxxxx"

android:pathPrefix="/xxxxxx"

  1. <intent-filter>
  2. <action android:name="android.intent.action.VIEW" />
  3. <category android:name="android.intent.category.DEFAULT" />
  4. <category android:name="android.intent.category.BROWSABLE" />
  5. <data android:scheme="demoScheme" android:host="host" android:pathPrefix="/path/subpath" />
  6. </intent-filter>

重新编译APP;

注册完成,APP已经可以被第三方调用了;

二、打开第三方APP

安装插件:url_launcher: ^5.7.10

  1. launchURL() async {
  2. const url = 'demoScheme://host/path/subpath';
  3. if (await canLaunch(url)) {
  4. // 判断当前手机是否安装某app. 能否正常跳转
  5. await launch(url);
  6. } else {
  7. // 无安装APP
  8. }
  9. }

三、接收跳转参数:

  1. String _initialLink;
  2. Uri _initialUri;
  3. @override
  4. void initState() {
  5. super.initState();
  6. initPlatformStateForStringUniLinks();
  7. }
  8. /// 接收跳转数据
  9. initPlatformStateForStringUniLinks() async {
  10. getLinksStream().listen((String link) {
  11. print('got link: $link');
  12. }, onError: (err) {
  13. print('got err: $err');
  14. });
  15. _initialLink = null;
  16. _initialUri = null;
  17. try {
  18. _initialLink = await getInitialLink();
  19. print('initial link: $_initialLink');
  20. if (_initialLink != null) {
  21. _initialUri = Uri.parse(_initialLink);
  22. }
  23. } on PlatformException {
  24. _initialLink = null;
  25. _initialUri = null;
  26. print('Failed to get initial link.');
  27. } on FormatException {
  28. _initialLink = null;
  29. _initialUri = null;
  30. print('Failed to parse the initial link as Uri.');
  31. }
  32. if (!mounted) return;
  33. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/810268
推荐阅读
相关标签
  

闽ICP备14008679号