App Store 促销
App Store 促销是指在 App Store 上浏览 App 内购买项目,甚至在下载 App 之前就能开始购买这些项目.
App Store 促销开发
在项目中支持内购的基础上,增加 App Store 促销功能配置,一般情况下会提示你,无法在 App Store 上推广.
该提示项目中并没有去实现 paymentQueue:shouldAddStorePayment:forProduct:
这个代理方法,导致无法直接使用 App Store 促销功能,所以需要开发者在项目中去实现这个代理方法.
这个方法会返回商品信息,返回值 YES 则交给苹果处理该订单,直接调起支付流程,如果返回 NO 的话,则不会调起支付流程,在里面我们可以增加自己的一些逻辑代码,比如判断当前用户是否已经登录了等等操作
/// AppStore 从促销点击购买处理
- (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product {
// 直接返回 NO,不交给苹果处理
NSString *productID = product.productIdentifier;
NSLog(@"AppStore 促销点击购买: productIdentifier - %@", productID);
// 记录当前事件
[APPDELEGATE.appReqTools dealAppStoreBuyWithProductID:productID];
// 判断当前是否登录
BOOL result = [LBLoginHandler checkLogin];
if (result == YES) {
// 当前已登录直接处理
NSLog(@"当前已登录,直接处理当前事件");
[APPDELEGATE.appReqTools dealAllEvent];;
} else {
// 当前未登录
NSLog(@"当前未登录,待登录成功后,处理跳转购买会员页面");
}
return NO;
}
这样就完成了 AppStore 内购促销开发
测试
该代码未上线,所以不能直接在 AppStore 进行测试,只有当该代码上线之后,才能在 App Store Connect 去设置 AppStore 促销功能,但是我们需要在开发过程中去测试该功能,可以使用以下方法
生成的 URL 类似如下:
itms-services://?action=purchaseIntent&bundleId=com.example.app&productIdentifier=product_name
网友评论