在iOS中管理订阅的URL

时间:2013-11-24 15:31:45

标签: ios objective-c app-store

用户已订阅我的自动续订应用订阅。 我想提供一个名为“管理订阅”的按钮。

这应该在我的特定应用程序的订阅管理下跳转到App Store。

我应该重定向哪个URL才能实现此目的?

4 个答案:

答案 0 :(得分:10)

这是应该使用的新URL:
https://apps.apple.com/account/subscriptions

答案 1 :(得分:5)

来自Apple documentation

  

您的应用无需编写自己的订阅管理用户界面,而是可以打开以下网址: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;
  }
}