App內(nèi)購項目的App Store推廣,app store推廣App內(nèi)購項目的App Store推廣今天說一下內(nèi)購項目在App Store的推廣和支持方式在App Store中搜索某個軟件的時候,比如QQ瀏覽器,在搜索列表和詳情中都會顯示內(nèi)購的項目,下面就說一下如何配置。App Store后臺內(nèi)購項目的配置首先選擇需要......
今天說一下內(nèi)購項目在App Store的推廣和支持方式
在App Store中搜索某個軟件的時候,比如QQ瀏覽器,在搜索列表和詳情中都會顯示內(nèi)購的項目,下面就說一下如何配置。
App Store后臺內(nèi)購項目的配置
首先選擇需要顯示的內(nèi)購項目,將該內(nèi)購項目中的App Store推廣的圖片上傳一下
然后到App Store推廣中,選擇需要推廣的項目展示
代碼中的配置
如果你看到了上面黃色的提示
無法在App Store上宣傳這些App內(nèi)購買項目,因為您最新的已批準二進制文件中不包含SKPaymentTransactionObserver方法。
那就是因為沒有在代碼中實現(xiàn)這個代理,這里以《iOS的應(yīng)用內(nèi)支付Inapp purchase的開發(fā)》中寫的支付類HDPayTools為例
首先在HDPayTools中,實現(xiàn)(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product這個代理函數(shù),這個是在App Store發(fā)起購買的時候會有回調(diào)。
就像開發(fā)文檔中說的
·如果返回值為true,那就是在打開app時直接調(diào)用購買確認的彈窗,讓用戶輸入密碼或者指紋等確認購買
·如果返回值為false,那就是只打開app,但是并不會直接調(diào)用購買的彈窗,相當于只是給了你一個product的訂單,你可以后續(xù)自己處理這個訂單
在App Store推廣購買和用戶手動點擊購買的區(qū)別:
用戶在應(yīng)用中自己點擊購買
如果用戶在你應(yīng)用中手動點擊購買,那么就是調(diào)用的支付,自己創(chuàng)建訂單和請求
(void)startPayWithProductID:(NSString*)productID withCompleteHandler:(paySuccess)paySuccessHandler{//下單
[SVProgressHUDshowWithStatus:nil];
self.paySuccessHandler=paySuccessHandler;
self.mproductID=productID;
NSSet*productIDs=[NSSetsetWithObject:mproductID];
SKProductsRequest*request=[[SKProductsRequestalloc]initWithProductIdentifiers:productIDs];
request.delegate=self;
[request start];
}
用戶在App Store的推廣中購買
如果是在App Store推廣購買,那么就是蘋果直接創(chuàng)建好了訂單和請求,然后直接在回調(diào)函數(shù)中返回給你,如果這個回調(diào)函數(shù)返回值為true,那么就是直接發(fā)起了購買請求,如果返回值為false,就是取消了這個購買請求,返回值相當于[request start];這一步
這兩種方式只是發(fā)起的方式不同,其他購買流程是一樣的,不需要再重新寫,在這個回調(diào)中只需要根據(jù)返回值去決定是否直接彈出購買。
回調(diào)函數(shù)的實現(xiàn)
所以那個回調(diào)函數(shù)的實現(xiàn)可以按照下面這樣來寫,寫在HDPayTools.m中:
//從App Store支付
(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product{self.paySuccessHandler=^(BOOL paySuccess){
if(paySuccess){
///在這個回調(diào)中去實現(xiàn)購買之后的流程
///...
[SVProgressHUDshowSuccessWithStatus: 購買成功];
}
};
//根據(jù)product.productIdentifier去判斷是否去直接彈出購買彈窗
if([product.productIdentifier isEqualToString:kHDHighVipProduct]){returntrue;
}
return false;
}
打開時注冊監(jiān)聽
既然監(jiān)聽的實現(xiàn)寫好了,那么就需要去監(jiān)聽App Store發(fā)起支付時的回調(diào)了,在AppDelegate.m中,在程序打開時候去創(chuàng)建一個監(jiān)聽者,因為我已經(jīng)在HDPayTools的init中,直接寫了[[SKPaymentQueuedefaultQueue]addTransactionObserver:self];,所以只要初始化就行了
(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{if(!self.payTools){
self.payTools=[[HDPayToolsalloc]init];
}
//....
}
這樣就可以了,當有App Store發(fā)起購買的時候,就可以監(jiān)聽到了。
測試
修改下面的鏈接地址,然后在safari瀏覽器打開,就可以測試從App Store發(fā)起購買了。其中鏈接中的bundleId修改為你自己應(yīng)用的bundleId,比如com.hudongdong.blog,productId修改為你創(chuàng)建的商品的id
itmsservices:// action=purchaseIntentbundleId=bundleIdproductIdentifier=productId
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部