iOS中浅淡UIApplication单例
2016-04-05 15:16
274 查看
在iOS的操作系统中 每一个程序都对应一个application单例,每一个application都对应一个Appdelegate代理,在代理中控制程序的各个状态。我们在程序中获取Application单例:[UIApplicationsharedApplication].当进行有关该应用的相关操作设置时需要获取,进行响应的操作。比如:
1、应用之间的调用和跳转
打开电话:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://%@",_PersonPhoneStr]]];
打开邮箱:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"mailto://devprograms@apple.com"]];打开短信:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms://466453"]];
打开浏览器[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];
也可以打开自己指定的程序:首先必须要知道要打开的程序所制定的url协议,然后再本程序中调用以下方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"要打开的软件协议名称://"]];
比如:创建A程序,我在A程序中的info.plist中制定对外程序打开A程序的url协议:
然后再A程序的appdelegate中实现:
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
if([[url
scheme]isEqualToString:@"myapp"]){
return
YES;
}
return
NO;
}。在B程序中调用以下方法打开A程序:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myapp://"]];
如果想传参数直接在//后面加就可以。
2、设置appIcon图标上的红色提示数字。
在ios8以后加入了用户权限的判断,在程序启动时首先执行:
float version = [[[UIDevicecurrentDevice]
systemVersion]floatValue];
if (version >=
8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadgecategories:nil];
[[UIApplicationsharedApplication]
registerUserNotificationSettings:settings];
}
然后在程序任何地方可以通过以下代码设置角标:
UIApplication *app=[UIApplicationsharedApplication];
app.applicationIconBadgeNumber=123;
当使用推送时相应的应该会有一个全局变量表示当前角标的数量,当在后台收到推送时应该在+1,当程序打开时应该把此角标变量设置为0.
3、在状态栏中显示网络加载。
UIApplication *app=[UIApplicationsharedApplication];
app.networkActivityIndicatorVisible=YES;
4、管理状态栏
iOS中管理状态栏有两种方式:1、使用UIApplication进行全局设置:首先在info.plist的文件中加入:
然后在程序中调用以下代码:
UIApplication *app=[UIApplicationsharedApplication];
[app setStatusBarStyle:UIStatusBarStyleLightContentanimated:YES];
2、在每个界面中都可以对状态栏进行控制:在Viewcontroller中重写以下两个方法:
#pragma mark-设置状态栏的样式
-(UIStatusBarStyle)preferredStatusBarStyle
{
//设置为白色
//return UIStatusBarStyleLightContent;
//默认为黑色
returnUIStatusBarStyleDefault;
}
#pragma mark-设置状态栏是否隐藏(否)
-(BOOL)prefersStatusBarHidden
{
return
YES;
}
1、应用之间的调用和跳转
打开电话:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://%@",_PersonPhoneStr]]];
打开邮箱:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"mailto://devprograms@apple.com"]];打开短信:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms://466453"]];
打开浏览器[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];
也可以打开自己指定的程序:首先必须要知道要打开的程序所制定的url协议,然后再本程序中调用以下方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"要打开的软件协议名称://"]];
比如:创建A程序,我在A程序中的info.plist中制定对外程序打开A程序的url协议:
然后再A程序的appdelegate中实现:
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
if([[url
scheme]isEqualToString:@"myapp"]){
return
YES;
}
return
NO;
}。在B程序中调用以下方法打开A程序:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myapp://"]];
如果想传参数直接在//后面加就可以。
2、设置appIcon图标上的红色提示数字。
在ios8以后加入了用户权限的判断,在程序启动时首先执行:
float version = [[[UIDevicecurrentDevice]
systemVersion]floatValue];
if (version >=
8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadgecategories:nil];
[[UIApplicationsharedApplication]
registerUserNotificationSettings:settings];
}
然后在程序任何地方可以通过以下代码设置角标:
UIApplication *app=[UIApplicationsharedApplication];
app.applicationIconBadgeNumber=123;
当使用推送时相应的应该会有一个全局变量表示当前角标的数量,当在后台收到推送时应该在+1,当程序打开时应该把此角标变量设置为0.
3、在状态栏中显示网络加载。
UIApplication *app=[UIApplicationsharedApplication];
app.networkActivityIndicatorVisible=YES;
4、管理状态栏
iOS中管理状态栏有两种方式:1、使用UIApplication进行全局设置:首先在info.plist的文件中加入:
然后在程序中调用以下代码:
UIApplication *app=[UIApplicationsharedApplication];
[app setStatusBarStyle:UIStatusBarStyleLightContentanimated:YES];
2、在每个界面中都可以对状态栏进行控制:在Viewcontroller中重写以下两个方法:
#pragma mark-设置状态栏的样式
-(UIStatusBarStyle)preferredStatusBarStyle
{
//设置为白色
//return UIStatusBarStyleLightContent;
//默认为黑色
returnUIStatusBarStyleDefault;
}
#pragma mark-设置状态栏是否隐藏(否)
-(BOOL)prefersStatusBarHidden
{
return
YES;
}
相关文章推荐
- 深入了解android平台的jni(一)
- android RadioGroup的使用
- [安卓开发笔记一]Android开发配置opencv环境超详细教程
- iOS NSSet和NSMutableSet
- 自学Swift之打印输出
- Activity的启动模式——LanuchMode(一)
- 使用Mali Graphics Debugger调优Unity程序(Killer示例)
- Android中的layout_column和layout_span属性
- Android listview嵌套viewpager滑动冲突问题
- Xamarin Android Activity全屏的两种方式
- Android安全机制
- Android之 如何解决ScrollView 和ListView滑动冲突的问题如何解决ScrollView can host only one direct child
- 【poj 3321】 Apple Tree 树状数组+dfs序
- Android Log升级版
- Android 内置FM频道
- Android 实现耳机hook键长按
- Android图片裁剪(拍照和从相册选择)
- iOS - 正则表达式判断邮箱、手机号码验证、车牌号验证、车型、用户名、密码、昵称、身份证号
- Android开发中,那些让你觉得相见恨晚的方法、类或接口
- Android中在GridView网格视图上实现item拖拽交换的方法