应用商店中管理订阅的链接

62

目前通过应用内购买取消自动续订订阅的唯一方法是使用设备执行以下操作:

设置 > 商店 > 查看我的帐户 > 管理我的订阅

是否可以通过编程方式直接链接到应用商店中的“管理我的订阅”页面?我知道我可以通过类似以下内容打开应用商店

NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com"];
[[UIApplication sharedApplication] openURL:url];

我看到其他应用程序能够做到这一点,但我似乎想不出如何做。

10个回答

115

使用 URL

根据苹果的文章《处理订阅计费》WWDC 2018 会话 705,以下 URL 可用于链接到管理订阅页面:

https://apps.apple.com/account/subscriptions

使用 StoreKit/SwiftUI (iOS 15+)

UIKit: 使用 StoreKit 的 showManageSubscriptions(in:) (文档)。

SwiftUI: 使用 SwiftUI 的修饰符 manageSubscriptionsSheet(isPresented:) (文档)。


3
这似乎是“官方方式”,但在iOS 12上,当我通过openURL()打开URL时,首先会打开Safari,然后转发到另一个名为finance-app.itunes.apple.com的网站,在那里会弹出一个提示框:“在iTunes Store中打开此页?”。如果您点击“打开”,则“iTunes Store”应用程序将打开,并且所需屏幕将显示为模式叠加层。烦人。有没有更平稳的方法,而不需要重定向,最好可以打开设置应用或App Store应用?(这是我作为用户的期望。) - Theo
2
@Theo 请查看mklb的答案:https://dev59.com/R2Up5IYBdhLWcg3wF0dq#53275848 - bryanjclark
3
新的订阅管理页面https://apps.apple.com/account/subscriptions 会重定向到App Store,只支持iOS 12或更高版本。旧的订阅管理页面https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions 则会重定向到iTunes Store。这两个页面都是官方的 方式,在我测试过的iOS 10至13设备上都可以正常使用。 - denkeni
无法重定向到tvOS的订阅管理页面?感谢帮助。 - Waqas
1
从iOS 15开始,这应该是正确的答案:https://dev59.com/R2Up5IYBdhLWcg3wF0dq#71836610 - Shaked Sayag
显示剩余5条评论

37

根据这个iTunes Connect指南,这个URL是有效的:

https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions

您可以直接链接到App Store的“管理订阅”页面,而无需编写自己的“管理订阅”页面。要做到这一点,请链接到以下URL:https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions。但是,这将在重定向到App Store App之前重定向到Safari。因此,用户将在其设备上看到两次应用切换。将https更改为itmsitms-apps似乎并未奏效。顺便说一下,这仅适用于设备,无法在模拟器上运行。

这个链接也会带用户去iTunes而不是问题标题所说的App Store。 - James Parker
此链接在某个设备上运作正常,但最近在该设备上停止工作。它返回以下内容:ping指标dialogIdMZFinance.ManageSubscriptionsLoginRequired message请登录以管理订阅 messageCode5074 选项管理订阅 取消 actionUrlbuy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions eventType对话框 失败类型5074 customerMessage请登录以管理订阅。m-allowed dialog种类授权 m-allowed message请登录以管理订阅。 explanation输入您的Apple ID和密码,然后单击“管理订阅”。 defaultButton确定 okButtonS... - mehdi

33

截至2018年11月,这是最佳方法。

if let url = URL(string: "itms-apps://apps.apple.com/account/subscriptions") {
    if UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url, options: [:])
    }
}

1
这是将用户引导到AppStore -> 订阅的正确方式。之前的首选项“itms://”会重定向到iTunes Store -> 订阅。 - Starsky

31

2018年在IOS上,这是以上答案的结合。此URL将以正确的视图打开App Store App:

itms-apps://apps.apple.com/account/subscriptions

截至2018年11月,这是最佳方法。 - Roboris
1
这应该是最受欢迎的答案。它是唯一一个可以带你进入App Store的解决方案。其他所有解决方案要么不再起作用,要么会带你进入iTunes。这也可以作为浏览器链接使用。 - James Parker

19

上述答案可能略有过时(包括苹果的文档),因为我在尝试使用链接时收到了Safari错误:

// old way
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions

在使用XCode 5.1和iOS 7.x时,我能够通过以下的openURL:调用正确地链接到相关应用的“管理订阅”部分:

// new way
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions"]]

这个链接指向iTunes。问题的标题清楚地说明它想要将用户带到应用商店。 - James Parker

10
请使用以下链接跳过Safari,直接进入App Store屏幕:
itmss://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions

玩得开心


4
你是从哪里找到这个 "itmss:" 的?只是试错还是有实际文档支持? - Enrico Susatyo
说实话,我今天尝试了一下,它把我带到了iTunes Store(而不是App Store),要求我输入密码并且成功了。但是当我回到应用程序并再次执行它时,它只是给我iTunes Store的主屏幕。在Apple修复此问题之前,我将继续使用https。 - Enrico Susatyo
这个链接指向iTunes。问题的标题清楚地说明它想要将用户带到应用商店。 - James Parker

3

1
并为SwiftUI管理订阅表单(isPresented:) - salami
这个能否从 Objective C 调用? - grebulon
很遗憾,这个API只能在Swift中调用。这是因为这个功能是在StoreKit 2中引入的,它是一个“基于现代Swift的API”。 - Kazunori Takaishi
StoreKit2: https://developer.apple.com/storekit/WWDC视频: https://developer.apple.com/videos/play/tech-talks/10887/?time=261 - Kazunori Takaishi
这个方法对我来说有问题。在表单被关闭后,我失去了所有的用户界面输入。 - Darkwonder

2

这是我的小小贡献,使用 Swift 5 编写:

guard let url = URL(string: "https://apps.apple.com/account/subscriptions") else { return }
UIApplication.shared.open(url, options: [:])

希望能对某人有所帮助 =)

感谢这个答案:从应用程序内部打开苹果的订阅窗口


1

苹果在其支持页面中使用的新URL似乎是https://finance-app.itunes.apple.com/account/subscriptions。这将在任何iOS设备上打开iTunes Store应用程序。


-1

我的应用程序最近因在应用程序中提供外部订阅管理选项而被拒绝。我从Apple Dev Team收到的消息是:“我们发现,虽然您已为应用程序提交了应用内购买产品,但应用内购买功能不存在于您的二进制文件中。具体来说,“管理订阅”选项链接到了iTunes Store之外。”

我提供了一个视图,使用户可以“恢复/订阅”年度自动续订订阅(当然,我已经添加了底层逻辑,以检测用户是否已订阅/未订阅,并添加了一个“管理我的订阅”按钮,允许用户通过iTunes管理其订阅(这是我从各种来源,包括此帖子中获得的)。

我认为为了使IAP产品被接受,应避免这种情况。也许在提交应用程序进行审核时,您也面临过同样的问题。


这与问题无关。 - James Parker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接