iOS 增加崩溃监测友好提示,维护好每个客户。

来源:互联网 发布:淘宝助理怎么上传宝贝 编辑:程序博客网 时间:2024/06/06 05:41

经历————>感悟:

前几天在地铁玩手机,无意间打开了好久没玩的新浪微博,进入首页向上刷新数据,一下就崩溃了。正当我差异大新浪的用户体验的时候,第三遍打开弹出了一个很友好的崩溃提示,如下图:

之后,我想这个就是我们需要借鉴的地方,虽然说这应该是产品考虑的问题。做开发的都知道,应用避免不了在某些特殊情况会出现崩溃,然而客户就是上帝,为了维护好客户,要给客户最友好的提示,即使应用崩了,也要告诉用户,给他们几个选择的余地。


于是,我就在代码里面增加了崩溃监测,代码如下:

在appdelegate.m中添加

   NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);//监测崩溃!!!

   void UncaughtExceptionHandler(NSException *exception) {

    NSArray *arr = [exceptioncallStackSymbols];//得到当前调用栈信息

    NSString *reason = [exceptionreason];//非常重要,就是崩溃的原因

    NSString *name = [exceptionname];//异常类型

    

    NSLog(@"exception type : %@ \n crash reason : %@ \n call stack info : %@", name, reason, arr);

    if (arr.count!=0 && reason.length!=0 && name.length != 0) {

        [[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"exception"];

    }

    

}

然后如果万一出现崩溃,就记录下来
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"exception"];
每次程序一启动再去判断有没有这个崩溃,

[[NSUserDefaultsstandardUserDefaults]boolForKey:@"exception"]//判断是否奔溃!!!

有的话再做版本升级、清除缓存、(让后台处理之后)重新进入 等处理。。。这些在这里就不详说了
最后,别忘了清除本次的监测结果

[[NSUserDefaultsstandardUserDefaults]removeObjectForKey:@"exception"];//取完要删除掉

[[NSUserDefaultsstandardUserDefaults]synchronize];






阅读全文
2 0
原创粉丝点击