如何改进iOS客户端的升级提醒功能

11、基于STM32的智能药盒 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。嵌入式具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 阅读详情

功能设计

先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多App,在设计“升级提示功能”都有问题。在此分享一下我的想法,欢迎大家讨论。

这些有问题的App包括:新浪微博、网易微博、网易新闻客户端以及大部分带有升级提示功能的App,所以我觉得这个问题还是挺普遍的。对于该问题,一句话描述起来就是:“这些App都会在用户刚刚使用它的时候,提示有新版本,让用户去App Store上下载最新的版本”。下面是某个应用的升级提示截图:

为什么我认为这是一个糟糕的设计呢?因为用户刚刚打开你的App,明显就是想使用你的功能。例如刚刚打开新浪微博,可能就是想看一下最新的消息或回复。刚刚打开网易新闻客户端,可能就是想看看最新的新闻。这个时候,你告诉用户有新版本,是想让用户暂时放弃使用该App吗?我不知道有多少用户会去点“升级”这个按钮,反正我每次看到这个提示都很郁闷,因为我如果点了,我就暂时不能使用该应用了(升级时原版本的App是无法使用的)。所以我在想,这个提示升级的时间能不能做得更友好一些?

有一次在地铁上我想到了一个好办法,就是让升级提示不是出现在软件刚刚打开的时候,而是用户刚刚退出App的时候,我们可以在用户刚刚退出App的时候,向iOS设备发一个本地的通知(Local Notification),在本地通知上显示升级提示。当用户点击这个升级提示时,我们的App在启动后跳转到AppStore,这样就达到的提示升级的效果。

这样做相比以前的好处有以下几点:

用户退出App的时刻,是一个访问这个App活动的结束。在这个时候提示,用户更有理由接受升级。

即便用户当前不接受升级,但这个升级提示都会存在用户的通知中心中,用户想升级时,点击这个通知,就可以方便地一键跳到AppStore的下载页面。而之前的方法在用户取消后,用户就不方便取获下载地址了。

另外,本地通知的使用只需要iOS4.0以上版本即可,而在中国,iOS4.0以上比例达到了99%。本地通知也不需要向用户申请发送通知的DeviceToken,所以该方案很少被用户禁止(用户只能专门去通知中心将该应用的所有通知关闭)。当然,这个升级提示也不应该每次都出现,以免对用户产生太多打挠,象我在粉笔网客户端上设置的策略是最多半个月出现一次。

在我在粉笔网iPhone端实现该方案后,有一次我发现支付宝的iOS客户端也采用通知的方式来提示用户升级,看来大家都想到一块儿了。不过从通知的发送时间来看,他们应该不是使用的本地通知,而是通过服务器发送Push通知的方式。这种方式的好处是即使用户安装后一次也没有使用你的App,你还是可以通过通知来唤醒他,可能的坏处是:

可能用户已经升完级了,你还把升级通知的信息发给用户了。象我就是,支付宝都升完级了,还发通知提示我有新版可以使用。

用户如果禁止了应用的Push通知,你就没办法发送升级提醒了。

技术实现
1  - (void)applicationDidEnterBackground:(UIApplication *)application
2  {
3      if ([[VersionAgent sharedInstance] shouldShowLocalNotification]) {
4          dispatch_async(dispatch_get_main_queue(), ^{
5              UILocalNotification * localNotification = [[UILocalNotification alloc] init];
6              if (localNotification) {
7                  localNotification.fireDate= [[[NSDate alloc] init] dateByAddingTimeInterval:3];
8                  localNotification.timeZone=[NSTimeZone defaultTimeZone];
9                  localNotification.alertBody = @"粉笔网客户端有新的版本,点击到App Store升级。";
10                  localNotification.alertAction = @"升级";
11                  localNotification.soundName = @"";
12                  [application scheduleLocalNotification:localNotification];
13              }
14          });
15      }
16  }

再简单说一下技术实现,我写了一个VersionAgent类,每24小时最多向服务器请求一次最新的App版本,如果版本有更新,则在AppDelegate的applicationDidEnterBackgroundl回调中,发送一个本地通知,示例代码如下:
然后通过AppDelegate的回调函数,判断App的启动方式是否是通过用户点击通知中心的升级提示来启动,如果是,则跳转到AppStore,示例代码如下:
1  - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
2      // open app store link
3      NSString * url = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@", APP_STORE_ID];
4      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
5  }

 

http://www.cocoachina.com/applenews/devnews/2013/0108/5495.html

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较 C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载 阅读详情

相关推荐

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

改进iOS客户端的升级提醒功能

改进iOS客户端的升级提醒功能 功能设计 先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多 App,设计的 “升级提示功能” 都不太友好。在此分享一下我的想法,欢迎大家讨论。 这些 App 包括:新浪微博、网易微博、网易新闻客户端以及大部分带有升级提示功能的 App,所以我觉得这个问题还是挺普遍的。对于该问题,一句话描述起来就是:“这些 App 都会在用户刚刚使...

a359798678的博客 140

3D Gaussian Splatting:用于实时的辐射场渲染

3D Gaussian Splatting:用于实时的辐射场渲染 3d gaussian splatting for real-time radiance field rendering

m0_51976564的博客 1万+

IOS开发之——改进iOS客户端的升级提醒功能

(文章转自唐巧的技术博客) 功能设计 先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多App,在设计“升级提示功能”都有问题。在此分享一下我的想法,欢迎大家讨论。 这些有问题的App包括:新浪微博、网易微博、网易新闻客户端以及大部分带有升级提示功能的App,所以我觉得这个问题还是挺普遍的。对于该问题,一句话描述起来就是:“这些App都会在用户刚刚使用它的时候,提示

pjk1129专栏 3180

晶体管的 栅极gate 材料选用 多晶硅polysilicon,并采用 自对准工艺 self-aligned IC后端版图 【VLSI】

本文为了解决为什么要使用多晶硅作栅极触点的问题,先介绍了MOS管的工作原理是通过栅极上所加的电压控制漏极与源极之间电流,然后解释了栅极的材料为什么选用多晶硅,然后介绍了晶体管里栅极的自对准工艺(Self-Aligned Gate )。

Jie_MSD的博客 1万+

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

m0_58098052的博客 1598

如何改进iOS客户端的升级提醒功能(http://blog.devtang.com)

功能设计 先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多App,在设计“升级提示功能”都有问题。在此分享一下我的想法,欢迎大家讨论。 这些有问题的App包括:新浪微博、网易微博、网易新闻客户端以及大部分带有升级提示功能的App,所以我觉得这个问题还是挺普遍的。对于该问题,一句话描述起来就是:“这些App都会在用户刚刚使用它的时候,提示有新版本,让用户去App Stor

呆萌院长 1139

【华为OD机试】2024年真题C卷(python)-API集群负载统计

【华为OD机试】-API集群负载统计-【华为OD机试】-API集群负载统计:某个产品的 restful API 集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 restful API 是由多个层级构成,层级之间使用/连接,如 A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。 现在负载均衡模块需要知道给定层级上某个名字出现的频次,未出现过用0

u014481728的博客 1495

改进iOS客户端的升级提醒功能--(by cos_sin_tan 虽然是转载的,但是我还是很有兴趣实现他的说法。)

改进iOS客户端的升级提醒功能 NOV 10TH, 2012 功能设计 先申明一下,我是码农,不是一个产品经理,但我觉得现有市面上的很多App,设计的“升级提示功能”都不太友好。在此分享一下我的想法,欢迎大家讨论。 这些App包括:新浪微博、网易微博、网易新闻客户端以及大部分带有升级提示功能的App,所以我觉得这个问题还是挺普遍的。对于该问题,一句话描述起来就是:“这些

春风得意,马蹄仍急;少年豪情,一笑难回。 829

搞定ESD(七):静电放电问题典型案例分析(二)

静电放电噪声耦合的方式主要是:传导耦合与辐射耦合,辐射耦合主要以磁场耦合、 电场耦合为主要形式。电场耦合发生的主要条件是:静电放电高频在参考地平面寄生电感中产生电平波动,平行于参考地平面上的较长信号布线就很容易通过分布电容发生电场耦合。根据高速信号回流路径的特性可知,其回流路径是贴近信号布线下方,或者信号两侧,若信号回流路径跨分割后,环路面积会随之增大;信号环路面积大从EMI角度看其空间辐射更强,从EMS角度看则更容易耦合外部噪声干扰(雷击浪涌、EFT、ESD、RS)。

记得诚 2801

DaVinci配置DID之二:工具链配置

本系列主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。1,CDD准备2,工具链配置3,代码实现4,验证结果本文讲述流程2话不多说,走你~博主也是AutoSar小白,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在下章关于代码具体实现的博文再相会哈~

weixin_48498880的博客 5743
上一篇: 通过openURL启动第三方APP传参
下一篇: 实现iOS长时间后台的两种方法:Audiosession和VOIP
think12
博客等级 码龄17年 132粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值