[iOS基础控件 - 6.10.5] UIApplication

时间:2023-12-22 15:15:14
A.概念
1.UIApplication对象是应用程序的象征,每个应用都有
2.单例
3.[UIApplication sharedApplication] 获取
4.iOS启动创建的第一个对象
5.利用UIApplication可以进行应用级的操作
B.使用
1.app的消息数量图标提示
     // 1.取得UIApplication
UIApplication *app = [UIApplication sharedApplication]; // 2.1 授权, iOS8之后必须要先授权才能进行修改信息通知数字的操作,授权之前要判断系统是否是iOS8,否则iOS8之前的系统会出错
if (__IPHONE_OS_VERSION_MIN_REQUIRED >= ) {
NSLog(@"支持iOS8 - 系统版本:%d", __IPHONE_OS_VERSION_MIN_REQUIRED); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[app registerUserNotificationSettings:settings]; } // 2.2 图标的信息通知数字
app.applicationIconBadgeNumber = ;
[iOS基础控件 - 6.10.5] UIApplication
2.联网状态提示
    // 3.联网提示
    app.networkActivityIndicatorVisible = YES;
[iOS基础控件 - 6.10.5] UIApplication
3.打开资源
     // 4.打开URL资源
/**
* 可以是本地资源 file:///Users/hellovoidworld/Pictures/G1/M2.jpg 省略了主机地址
* 也可以是网络资源 http://www.baidu.com
* 打电话 tel://10086
* 短信 sms://10086
* 邮件 mailto://12345@qq.com
* 系统会根据资源类型来选择打开方式
*/
NSLog(@"打开url");
[app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[iOS基础控件 - 6.10.5] UIApplication
#mark: 我这里试验打开本地文件失败,没有任何反应
4.跟其他app通信
(这里没有详细学习)
5.管理状态栏
     iOS7之后还可以使用controller管理状态栏,所有controller都可以控制,这是默认的控制方法
     在这之前,UIApplication是控制状态栏的唯一方法,要进行配置进行转换(不使用controller进行控制)
[iOS基础控件 - 6.10.5] UIApplication
     这个方法还可以带动画方法,而且因为UIApplication是单例的,管理方便。
     // 5.管理状态栏
// 5.1使用动画效果隐藏状态栏
// [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; // 5.2 使用动画效果变化状态栏成白色
[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];