iOS开发 - appstore评价与app内展示appstore

news/2024/11/6 17:22:20/

iOS开发 - appstore评价与app内展示appstore

之前开发中遇到app内通过广告直接展示某个app的appstore信息页面。StoreKit提供了SKStoreProductViewController可以app中直接访问app store 而不需要跳转到app store

一、代码实现

#import "SDStoreProductManager.h"
#import <StoreKit/StoreKit.h>static SDStoreProductManager *shareInstance = nil;@interface SDStoreProductManager ()<SKStoreProductViewControllerDelegate>@property (nonatomic, weak) UIViewController *controller;@end@implementation SDStoreProductManager+ (instancetype)shareInstance {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{shareInstance = [[SDStoreProductManager alloc] init];});return shareInstance;
}/**有次数限制,一年只能使用三次使用次数超限后,需要跳转appstore*/
- (void)appstoreSystemComent {if (@available(iOS 10.3, *)) {if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支持//防止键盘遮挡[[UIApplication sharedApplication].keyWindow endEditing:YES];[SKStoreReviewController requestReview];}} else {// Fallback on earlier versions}
}/**可评分评论,打开appstore*/
- (void)openAppStoreComment:(NSString *)appID {if (!(appID && [appID isKindOfClass:[NSString class]] && appID.length > 0)) {return;}NSString *urlString = [NSString  stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",appID];//替换为对应的APPID[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
}/**app内部加载评价*/
- (void)inAppOpenAppStore:(NSString *)appID controller:(UIViewController *)controller {if (!(appID && [appID isKindOfClass:[NSString class]] && appID.length > 0)) {return;}if (!(controller && [controller isKindOfClass:[UIViewController class]])) {return;}__weak typeof(self) weakSelf = self;weakSelf.controller = controller;SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];storeProductViewContorller.delegate = self;//加载App Store视图展示[storeProductViewContorller loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:appID} completionBlock:^(BOOL result, NSError *error) {if(error) {} else {//模态弹出appstore[weakSelf.controller presentViewController:storeProductViewContorller animated:YES completion:^{}];}}];
}// 代理方法
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {[self.controller dismissViewControllerAnimated:YES completion:^{}];
}@end

二、小结

iOS开发 - appstore评价与app内展示appstore,使用StoreKit之SKStoreProductViewControl展示appstore某个应用的appstore页面。

学习记录,每天不停进步。


http://www.ppmy.cn/news/950922.html

相关文章

【JavaEE】Spring的开发要点总结(1)

Spring的开发要点总结 文章目录 【JavaEE】Spring的开发要点总结&#xff08;1&#xff09;1. DI 和 DL1.1 DI 依赖注入1.2 DL 依赖查询1.3 DI 与 DL的区别1.4 IoC 与 DI/DL 的区别 2. Spring项目的创建2.1 创建Maven项目2.2 设置国内源2.2.1 勾选2.2.2 删除本地jar包2.2.3 re…

chatGPT-编程篇

问题一&#xff1a;程序员会不会被完全替代 已看到的前景下还不会&#xff0c;原因&#xff1a; 1、训练数据延迟&#xff0c;最新的技术、更新不够及时&#xff0c;如微信小程序开发及api变更、最新的算法&#xff0c;这块最容易在未来实现 2、有效提问所需的专业性&#x…

Python+chatGPT编程5分钟快速上手,强烈推荐!!!

最近一段时间chatGPT火爆出圈&#xff01;无论是在互联网行业&#xff0c;还是其他各行业都赚足了话题。 俗话说&#xff1a;“外行看笑话&#xff0c;内行看门道”&#xff0c;今天从chatGPT个人体验感受以及如何用的角度来分享一下。 1、chatGPT是个啥&#xff1f; chatGP…

编程新视角:ChatGPT帮助你高效编程和理解代码

现在好几个大公司都推出了自家的大语言模型&#xff0c;有的参数比GPT多&#xff0c;但是真正能称得上会编程的&#xff0c;大概只有GPT一个&#xff0c;可以说是OpenAI的独门功夫。 这篇文章旨在探讨GPT辅助编程过程中常用的提示和技巧。当然&#xff0c;我自己也是一边学一边…

初探ChatGPT编程能力

最近ChatGPT被持续火热关注。有人盛赞它的智能超群&#xff0c;似乎要掀翻很多行业&#xff0c;重新洗盘&#xff1b;而有的人却不以为然&#xff0c;觉得它并没有这么厉害。今天我做一个小测试从编程这个需要一定逻辑能力的方面来考察一下。 首先我提出一个解答24点的问题&am…

【chatGPT】和chatGPT结对编程的6小时

1.我对AI的偏见 2013年我写了个微信聊天机器人&#xff0c;在新浪微博上小火了一把。我的认知局限性让我没想到若干年后网红如此赚钱&#xff0c;活该我现在还在搬砖送外卖。 那阵子心里美滋滋——这个机器人好像我小孩儿&#xff0c;你教它一点&#xff0c;它就聪明一点。当然…

【ChatGPT】使用ChatGPT进行51单片机程序编程体验

背景 最近ChatGPT大火&#xff0c;笔者尝试使用它进行了51单片机编程尝试。ChatGPT是一种由OpenAI训练的大型语言模型&#xff0c;具有强大的自然语言处理能力和生成代码的能力。 使用ChatGPT进行51单片机编程&#xff0c;笔者发现它可以帮助开发人员快速生成符合要求的代码&a…

ChatGPT 对编程的影响

ChatGPT 对编程的影响 ChatGPT 不仅在对话生成、问题回答等任务上表现出色&#xff0c;还在编程领域产生了一定的影响。本文将探讨 ChatGPT 对编程的影响及其潜在作用。 提供快速参考和指导 ChatGPT 可以迅速回答编程问题&#xff0c;提供代码示例、语法建议和解释。无论是初…