iOS 10.3重大更新!可更换应用图标!
2017-04-06 本文已影响155人
凉风起君子意如何
威锋网讯,苹果昨天推送了 iOS 10.3 的正式版,在该版本中包括一项新功能,它允许开发人员在安装应用后更改应用图标,并将自定义应用图标带入到 iOS 的主屏幕。 MLB.com At Bat 和 NHL iOS 应用现在就正在利用新的自定义图标功能。
在MLB.com At Bat 应用中,用户可以使用 MLB 俱乐部品牌的应用图标来自定义应用的主屏幕图标,来代表他们最喜欢的球队。同样地,在 NHL 应用中,应用图标也可以使用球队队徽而不是标准的 NHL 应用图标。
要更改图标,首先需要 iOS 10.3 的环境。然后用户需要前往应用中的更多-设置-主屏幕图标,然后选择一个队徽。
据TechCrunch 指出,虽然现在开发者可以提供不同的应用图标,但仍然无法提供动态图标,比如可以显示当前温度的天气应用图标。自定义主屏图标,也就是苹果提到的“用户可选择的应用图标”意味着未来将有大量的应用支持图标更换。
当然,苹果对应用图标有着严格的规定,例如视觉一致性,简洁的图标交换界面和明确的用户权限来更改应用的图标。
体育方面的app还是可行,因为你喜欢哪支球队, 就可以把这个app的icon换做那个球队的队徽或者别的你喜欢的,感觉还是挺爽的。但是对其它类型一些app ,好像就不是很重要了,对用户来说,可能不会去怎么关心应用图标到底怎么样,习惯了就好(当然不能太突兀了)。
不多说,下面两步搞定!后面附有demo
一,info.plist设置
-
主icon图标设置
-
导入自定义icon图标
-
Add row 如下
Icon files (iOS 5)
-
Scource code方式打开info.plist,把如下代码copy进去
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon60X60</string>
</array>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>newIcon1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon1</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>newIcon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon2</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>newIcon0</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newIcon0</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
二,相关代码设置
- (IBAction)clickBtn:(id)sender {
[self changeAppIcon];
}
- (void)changeAppIcon
{
NSMutableArray *icomNameArray = [NSMutableArray arrayWithObjects:@"newIcon0",@"newIcon1",@"newIcon2", nil];
int i = (arc4random() % icomNameArray.count);
//ios10.3之后,更改icon图标的api才有效
if ([UIApplication sharedApplication].supportsAlternateIcons) {
NSLog(@"you can change this app's icon");
}else{
NSLog(@"you can not change this app's icon");
return;
}
NSString *iconName = [[UIApplication sharedApplication] alternateIconName];
if (iconName) {
// change to primary icon
[[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
return;
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}else{
// change to alterante icon,随机获取alternate icon
[[UIApplication sharedApplication] setAlternateIconName:[NSString stringWithFormat:@"newIcon%d",i] completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"set icon error: %@",error);
return;
}
NSLog(@"The alternate icon's name is %@",iconName);
}];
}
}
主要就是这个API:
}];```
以上步骤都设置好后,运行,搞定!
![](http:https://img.haomeiwen.com/i2026235/9a68d9303cfe9d8e.gif?imageMogr2/auto-orient/strip)
***
[github demo,别忘了帮忙star😝 ](https://github.com/caohuoxia/CHXIconAlternateDemo/tree/master)