potatotips #62で発表したスライドです! https://potatotips.connpass.com/event/129207/
QPUBUPUJQT՝ۚॲཧͱ͔ͨͨ͏ʂ΅ͬͪήʔϜσϕϩούࢁ৴ߦɹ
View Slide
࡞ΞϓϦʮύζϧˍϞφʔΫʯສμϯϩʔυಥഁ
࣮՝ۚॲཧͷ࣮ॳΊͯʂ
ࠓͲ͖0CKFDUJWF$Ͱ՝ۚॲཧΛॻ͍ͨϨΞέʔεʂ
ʮ՝ۚͨ͠ΒΞϓϦ͕ىಈ͠ͳ͘ͳͬͨʂʯ
खݩͷڥͰ࠶ݱͰ͖ͳ͍ʜ
ͱΓ͋͑ͣιʔείʔυΛಡΉ
͓ʁ// 課金成功時に記録を保存するvoid purchased(std::string id){// 課金ID→内部IDstd::map tbl{{ "PERCHASE01", "PERCHASE-01" },{ "PERCHASE02", "PERCHASE-02" },};// 課金ID→内部ID にしたのを保存setRecord(tbl.at(id));}
// 課金成功時に記録を保存するvoid purchased(std::string id){// 課金ID→内部IDstd::map tbl{{ "PERCHASE01", "PERCHASE-01" },{ "PERCHASE02", "PERCHASE-02" },};// 無効な課金IDだとここでアプリが落ちるsetRecord(tbl.at(id));}
ͬ͞͞ͱमਖ਼// 課金成功時に記録を保存するvoid purchased(std::string id){// 課金ID→内部IDstd::map tbl{{ "PERCHASE01", "PERCHASE-01" },{ "PERCHASE02", "PERCHASE-02" },};// 無効なIDでなければ処理するif (tbl.count(id)){setRecord(tbl.at(id));}}
ͬͦͯ͘͞͠όʔδϣϯΞοϓਃʂ
ʮͬͺΓىಈ͠·ͤΜɻʯ
;ͨͨͼιʔείʔυΛಡΉ
͓ʁ// 課金情報を取得void price(NSString* product_id, id viewController){NSSet* id_set = [NSSet setWithObject:product_id];// リクエストを生成SKProductsRequest* request =[[[SKProductsRequest alloc]initWithProductIdentifiers:id_set] autorelease];request.delegate = viewController;// 取得開始![request start];}
উखʹղ์ͨ͠Βμϝͳͭʜʁ// 課金情報を取得void price(NSString* product_id, id viewController){NSSet* id_set = [NSSet setWithObject:product_id];// リクエストを生成SKProductsRequest* request =[[[SKProductsRequest alloc]initWithProductIdentifiers:id_set] autorelease];request.delegate = viewController;// 取得開始![request start];}
·ͨιʔείʔυΛಡΉͱ͜Ζ͔Β͔ʜ
ͱʜ͜͜ͰϢʔβʔ͔Βͷوॏͳใ͕ʂ
ใ̍ʮ՝ۚ࣌ʹΫϨδοτΧʔυ൪߸Λొͨ͠ʯ
wϢʔβʔ͕ॳΊͯ՝ۚͨ࣌͠ͷڍಈwΞϓϦ͔Β"QQ4UPSFը໘ભҠͯ͠ɺ·ͨΞϓϦʹͬͯ͘Δύλʔϯ
ใ̎ʮΫϥογϡϩάʹͦΕΒ͖͠ใ͕ʂʯ
͜Ε͔ʂ// 課金成功時の処理void provideContent(NSString* productIdentifier){// IDをNSString→std::stringにして課金完了処理へpurchase_completed([productIdentifier UTF8String]);}// 課金完了処理void purchase_completed(std::string& id){// 色々処理}
// 課金成功時の処理void provideContent(NSString* productIdentifier){// 変換結果が null の場合があり得るpurchase_completed([productIdentifier UTF8String]);}// 課金完了処理void purchase_completed(std::string& id){// idが null の場合にアプリが落ちる}
͜͏ͨ͠// 課金成功時の処理- (void)provideContent:(NSString *)productIdentifier{std::string id = productIdentifier? [productIdentifier UTF8String]: "";ngs::purchase_completed(id);}// 課金完了処理void purchase_completed(std::string& id){// idがnullになることはない}
ʮىಈ͠·ͨ͠ʂ͋Γ͕ͱ͏͍͟͝·͢ʂʂʂʂʯ
̎ϲֻ݄͚ͯղܾʂ
wखݩͰ࠶ݱͰ͖ͳ͍ෆ۩߹ͷղܾ͍͠wϢʔβʔ͔Βͷࠣ͘͝ࡉͳใࠂݟಀ͞ͳ͍w͖͋ΒΊͳ͍ؾ࣋ͪ·ͱΊ
w5XJUUFS!NJOHBNFw'BDFCPPLNJOHBNFw(JU)VCUFLOJTIJwΞϓϦͷιʔείʔυIUUQTHJUIVCDPNUFLOJTIJ1V[[MF"OE.POBSDI͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ