动态更换应用图标AppIcon

动态更换应用图标AppIcon

在 iOS 10.3 以上苹果添加了更换图标的功能,通过这个功能,我们可以在适当的时候采取特定的方式为我们的App更换图标。使用的场景,通常用于公司活动,逢年过节等换一个应用图标AppIcon 来应景,不需要进行发版 。

主要流程如下:

1. 新建测试项目,设置项目的主app图标。方式和正常设置AppIcon方式一样。
  1. 在Assets.xcassets文件中设置AppIcon,如下图:
    在这里插入图片描述

  2. 在TARGETS—>General—>App Icons and Lauch Images—>App Icons Source设置图标来源:AppIcon
    屏幕图为
    在这里插入图片描述

2、配置需要动态展示的App图标图片
  1. 动态更换的icon不能放在Assets.xcassets里!但是正常的主icon还是可以在Assets.xcassets里设置的. 动态更换的icon 放到工程目录下就可以了,
    一个标准的Icon图集, 需要十几种尺寸, 比如: 20, 29, 40, 60 故动态的图片可添加多尺寸 也可不加 但是不能小 否则会模糊
    在这里插入图片描述

  2. 配置info.plist文件
    在这里插入图片描述

这里的Icon files(iOS 5)是个字典,其中默认包含两个Key值,分别是:
Primary Icon(主icon):设置app的主icon,可以在这里的Icon files数组内添加,有多个的话,依次添加,也可以这里不用填写,直接在Assets.xcassets 里配置;
Newsstand Icon(期刊icon):设置所有用户订阅的报刊和杂志类的图标,目前我们用不到,先不用管。

在 Icon files(iOS 5)内添加一个Key: CFBundleAlternateIcons ,类型为字典。
在这个字典里配置我们所有需要动态修改的icon:键为icon的名称,值为一个字典(这个字典里包含两个键:CFBundleIconFiles,其值类型为Array,内容为icon的名称;UIPrerenderedIcon,其值类型为bool,内容为NO,也可以不加此key)

CFBundleIcons:
一个字典,包含所有AppIcon信息,即上图的Icon files(iOS 5)
CFBundlePrimaryIcon:
如果已经在Assets.xcassets中设置了AppIcon,那么CFBundlePrimaryIcon中的配置会被忽略,Assets.xcassets的AppIcon将会自动配置到CFBundlePrimaryIcon中。
CFBundleAlternateIcons:
一个数组,负责配置可供替换的icon信息
UIPrerenderedIcon:
是否已经预渲染,如果不设置该项或者设为NO。系统会自动为icon进行渲染增加光泽

3、代码示例

在一段时间进行更换图标

+ (void)changeIconEvent {
   
    NSDate *date = [NSDate date];
    NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
    calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: uniapp 是一种跨平台开发框架,可以实现一次编写同时发布到多个平台,包括iOS和安卓。在uniapp中,动态修改app应用图标是可以实现的。 首先,要实现动态修改app应用图标,我们需要使用uniapp提供的原生插件功能。原生插件是提供给uniapp开发者与原生代码进行交互的一种机制。可以通过编写原生插件来实现一些uniapp本身不支持的功能。 其次,我们需要在原生代码中实现修改应用图标的功能。具体的实现方法会因为平台不同而有所差异。对于iOS平台,我们可以通过修改应用的Info.plist文件中的CFBundleIconName属性来更换应用图标。这个属性对应的是应用包内存放应用图标文件的名称。我们可以通过在原生代码中动态修改这个文件名来实现动态更换图标的效果。对于安卓平台,我们可以通过修改应用的AndroidManifest.xml文件中的android:icon属性来更换应用图标。与iOS类似,我们也可以通过在原生代码中动态修改这个属性的值来实现动态更换图标的效果。 最后,我们需要在uniapp中调用原生插件提供的接口来实现动态更换应用图标的功能。可以通过在uniapp的逻辑代码中监听用户的操作,当用户触发更换图标的操作时,调用原生插件提供的接口来实现应用图标更换。可以根据不同的操作系统平台来调用不同的原生插件接口。 总之,通过使用uniapp的原生插件机制和对应平台的原生代码,我们可以实现在uniapp动态修改app应用图标的功能。这样用户可以根据自己的喜好或者不同的场景,来随时更换应用图标,增加应用的个性化和多样性。 ### 回答2: UniApp是一款跨平台的应用开发框架,支持使用Vue.js进行开发,并能在多个平台上同时运行。动态修改UniApp应用图标是一种实现个性化展示和用户体验的方法。 UniApp支持在不同平台上自定义应用图标的功能,例如在Android平台上可以通过manifest.json文件的`icons`字段来配置应用图标,而在iOS平台上可以通过uni-config.json的`icons`字段来配置应用图标。这些配置文件可以在UniApp项目中找到。 要实现动态修改应用图标,首先需要准备好不同图标的资源文件,这些文件可以是不同尺寸和不同格式的图片。接下来,在应用中通过监听用户的操作或者其他触发条件,获取需要切换的图标信息。 在获取到需要切换的图标信息后,可以使用UniApp提供的平台相关API来进行动态修改。例如在Android平台上可以使用uni.requestUpdateApp方法来请求更新应用图标,而在iOS平台上可以使用uni.setTabBarStyle方法来设置应用图标的样式。 在实际实现过程中,需要根据具体平台的要求和限制来进行相应的操作。同时也要注意在应用内进行图标切换时给予用户相应的提示和选择,以保证用户体验的一致性和便利性。 总结来说,UniApp支持动态修改应用图标的功能,但具体的实现方式要根据不同的平台和需求来进行相应的配置和操作。这样可以提供更好的用户体验和个性化的展示效果。 ### 回答3: UniApp是一种跨平台的应用开发框架,可以用于开发同时运行在多个平台的应用程序。动态修改UniApp应用图标是指在应用运行时,可以通过代码动态地改变应用图标。 UniApp框架本身并没有直接提供修改应用图标的功能,但可以通过一些技巧来实现。在UniApp中,可以通过动态切换应用启动页的方式来实现实质上的应用图标变化。 具体操作步骤如下: 1. 开发者可以准备好不同的应用图标资源文件,例如不同颜色、不同风格的图标。 2. 在UniApp的启动页中通过代码逻辑来判断需要显示的图标,并将对应的图标资源文件路径传递给页面。 3. 在启动页的页面对应位置引用图标资源,并设置为应用图标。 4. 当应用启动时,启动页会根据传递的图标资源文件路径动态加载对应图标,并将其设置为应用图标。 需要注意的是,动态修改应用图标的方式在不同平台上可能会有不同的实现方法。由于UniApp是跨平台的框架,开发者需要针对不同平台分别处理图标动态切换。可以通过判断运行的平台类型,然后调用对应平台的接口来实现图标动态切换。 总结来说,UniApp框架虽然没有直接提供动态修改应用图标的功能,但借助启动页的切换机制,开发者可以通过代码实现应用图标动态变化。这种方式需要在不同平台上分别处理,为每个平台准备对应的图标资源文件,并通过代码逻辑来判断和切换图标

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值