用户已订阅我的自动续订应用订阅。 我想提供一个名为“管理订阅”的按钮。
这应该在我的特定应用程序的订阅管理下跳转到App Store。
我应该重定向哪个URL才能实现此目的?
答案 0 :(得分:10)
这是应该使用的新URL:
https://apps.apple.com/account/subscriptions
答案 1 :(得分:5)
您的应用无需编写自己的订阅管理用户界面,而是可以打开以下网址:https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions 打开此URL会启动iTunes或iTunes Store,然后显示“管理订阅”页面。
答案 2 :(得分:0)
基于@i4guar 提供的帐户订阅 URL,以下代码是我使用 Swift 4.2 导航到帐户订阅页面的方式。这在 iOS 14.5 上对我有用。
if let url = URL(string: "https://apps.apple.com/account/subscriptions") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:])
}
}
答案 3 :(得分:0)
如果有人想把“管理订阅”按钮放在一个很长的描述文本中,作为一种选择,我们可以使用 UITextView 的委托来处理 NSURL 交互,一旦用户,它会直接将用户重定向到 App Store 的订阅管理视图点按“管理订阅”文本。
以下是示例代码:
static NSString *const kURLOfManageSubscriptions = @"https://apps.apple.com/account/subscriptions";
- (void)setupSubviews
{
UITextView *aTextView = [[UITextView alloc] init];
aTextView.delegate = self;
aTextView.editable = NO;
aTextView.scrollEnabled = NO;
// ...
NSString *text = @"... long text contains ... Manage Subscriptions";
UIFont *textFont = [UIFont systemFontOfSize:UIFont.systemFontSize];
NSDictionary *textAttributes =
@{NSFontAttributeName : textFont,
NSForegroundColorAttributeName : UIColor.labelColor
};
NSDictionary *linkedTextAttributes =
@{NSFontAttributeName : textFont,
NSForegroundColorAttributeName : UIColor.blueColor,
NSLinkAttributeName : kURLOfManageSubscriptions
};
NSMutableAttributedString *content = [[NSMutableAttributedString alloc] initWithString:text attributes:textAttributes];
NSRange linkedTextRange = [text rangeOfString:@"Manage Subscriptions"];
[content addAttributes:linkedTextAttributes range:linkedTextRange];
aTextView.attributedText = content;
}
#pragma mark - UITextViewDelegate
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction
{
if ([URL.absoluteString isEqualToString:kURLOfManageSubscriptions]) {
// The default interaction will redirect user to App Store's subscription
// management view directly.
// Or you can manage it by yourself here.
return YES;
} else {
return NO;
}
}