Как открыть страницу подписки приложения App Store программным способом?

Если у вас есть подписка с двумя различными возможными длинами в вашем приложении iOS, и пользователь, который приобрел более короткую подписку, решает приобрести более длинную подписку, им будет предложено следующее диалоговое окно:

enter image description here

нажатие настройки приведет пользователя к App Store app и открывает страницу, где они могут управлять своими подписками. Скорее всего, Cocoa просто использует URL-адрес пользовательской схемы (например, appstore: / / pages / subscriptions) для достижения этот.

Что это за URL? Есть ли другой способ открыть страницу подписки в приложении App Store программным способом?

2 ответов


Я действительно думаю, что это невозможно, потому что, когда вы добавляете платеж в свой SKPaymentQueue, и появляется alertView, ваше приложение больше не активно-app store управляет всем вне вашего приложения, потому что позже applicationWillResignActive callback называется.

это означает, что он был неактивен, и то, что вы хотите сделать, не может быть доступно внутри вашего приложения.


на подписка документы предложите открыть страницу управления подписками, используя следующий URL

https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html#//apple_ref/doc/uid/TP40008267-CH7-SW8

что-то вроде

        let subscriptionURL = URL.init(string: "https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions")!
        UIApplication.shared.open(subscriptionURL)

это работает, хотя это несколько косвенный. Ссылка открывается в Safari, который затем перенаправляет через ссылка на магазин. Перенаправление на самом деле

itmss://купить.программу iTunes.яблоко.на COM/WebObjects/MZFinance.тпру/ва/manageSubscriptions

поэтому я использую это непосредственно в своем приложении, хотя, конечно, это не гарантируется стабильностью.

NB: подписки песочницы не будут отображаться на этой странице. Вам придется сделать пробную регистрацию на какой-то другой живой сервис, чтобы иметь что-нибудь, чтобы увидеть, когда вы тестируете.