繁体   English   中英

在 iOS 和 Android 上工作的动态链接可以接收它们但不能生成一个

[英]Dynamic Links Working on iOS, and Android Can Receive Them But Not Generate One

我正在我的项目中实施 Firebase 动态链接。 我已按照此处的指南进行操作,该指南在整个过程中做得很好。 我已经更新了清单和 plist 文件,但是 Android 生成动态链接时仍然遇到问题。

iOS 和 Android 都能够接收动态链接,这会以预期的行为自动打开应用程序。 我还能够在 iOS 中成功生成动态链接,并在 iOS 和 Android 中使用它。 但是,当我尝试在 Android 设备上生成动态链接时,我收到错误消息:

E/flutter ( 7378): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(short_link_error, 17: API: DynamicLinks.API is not available on this device. Connection failed with: ConnectionResult{statusCode=SERVICE_INVALID, resolution=null, message=null}, null, null)

我正在生成这样的链接:

Future<Uri> createDynamicLink(String id) async {
    final DynamicLinkParameters parameters = DynamicLinkParameters(
      uriPrefix: 'https://example.page.link',
      link: Uri.parse('https://example.com/?id=$id'),
      androidParameters: AndroidParameters(
        packageName: 'com.example.example',
        minimumVersion: 1,
      ),
      iosParameters: IosParameters(
        bundleId: 'com.example.example',
        minimumVersion: '1',
        appStoreId: '1223432',
      ),
    );
    var dynamicUrl = await parameters.buildShortLink();
    final Uri shortUrl = dynamicUrl.shortUrl;
    return shortUrl;
  }

并在页面上实现它:

Align(
  alignment: AlignmentDirectional(0, 0),
    child: FlutterFlowIconButton(
     icon: Icon(
     Icons.send_sharp,
   ),
     onPressed: () async {
       var uri = await _dynamicLinkService.createDynamicLink('firsttest');
       await Share.share(uri.toString());
       print(uri.toString());
  },
 ),
),

我还应该注意到 Android 模拟器有互联网,所以这似乎也不是问题。 我已经在 Nexus S 和 Pixel 5 API 30 模拟器上尝试过这个,但错误消息相同。

更新:我终于想通了。 我不得不使用 API=32 的模拟器,我猜想动态链接 API 可以使用。 我想我会把它留在这里,以防其他人遇到这个问题。

我第一次使用 android 设备和自定义固件(小米 Mix 3 5g Lineage OS 12),这个固件包括谷歌服务,但我发现了这个错误。 在下一次我尝试在谷歌模拟器上使用谷歌服务的动态链接,这一切都很好。 我认为这个问题与操作系统中的谷歌服务有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM