You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何一键打开Google Play商店订阅页面?

一键跳转Google Play订阅页(market://格式)实现方案

需求说明

  • 需直接跳转至Google Play商店的所有订阅管理页面,跳过手动打开商店、进入设置、找到订阅页的繁琐步骤
  • 必须使用market://格式的跳转链接,禁止通过浏览器打开,目标页面对应Web版链接:https://play.google.com/store/account/subscriptions

已尝试方案

已使用url_launcher、store_redirect等包测试过以下代码,但未实现预期效果:

代码示例1

final Uri url = 
         Uri.parse('https://apps.apple.com/app/MyAppName/idXXXXX');
          try {
            if (await canLaunch(url.toString())) {
              await launch(url.toString());
            } else {
              throw 'Could not launch $url';
            }
          } catch (e) {
            print(e);
          }

代码示例2

launchUrl(Uri.parse('https://play.google.com/store/account/subscriptions?sku=pro.monthly.testsku&package=com.example.app'));

可行解决方案

使用Google Play官方支持的market://协议链接,直接唤起商店的订阅管理页面:

核心跳转链接

  • 通用订阅页(显示当前账号所有订阅):market://account/subscriptions
  • 指定应用的订阅页(仅显示当前应用的订阅):market://account/subscriptions?package=com.your.app.package

完整实现代码(基于url_launcher)

import 'package:url_launcher/url_launcher.dart';

Future<void> openPlayStoreSubscriptions() async {
  // 替换为你的应用包名,或者使用不带参数的通用链接
  final Uri targetUrl = Uri.parse('market://account/subscriptions?package=com.your.app.package');
  
  // 强制使用非浏览器方式唤起应用
  if (await canLaunchUrl(targetUrl)) {
    await launchUrl(
      targetUrl,
      mode: LaunchMode.externalNonBrowserApplication,
    );
  } else {
    // 异常处理:比如提示用户安装Google Play商店
    print('无法打开Google Play订阅管理页面');
  }
}

关键说明

  • LaunchMode.externalNonBrowserApplication参数确保系统直接调用Google Play应用打开链接,不会通过浏览器中转
  • 若设备未安装Google Play商店,需添加降级处理逻辑(比如提示用户)

内容的提问来源于stack exchange,提问作者Рустам Нигматулин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:35:25