日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态更新App的图标(AppIcon)

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态更新App的图标(AppIcon) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序言

????????隨著時代的進步,人的生活多元化。一些公司的 App 也隨著人的生活改變而進行適和情景的變化。比如,本公司的 App 在四月時是本公司成立 4 周年的生日,那就想在本公司 AppIcon 上添加一個圣誕帽。第一種方法: 在 App 的工程中,替換原始的 AppIcon ,再提交 AppStore 進行審核。這種方法不說麻煩,而且耗費時間長。第二種:在 App 中動態更新 AppIcon 。 這種方法直接、快速、適合即時應用。


1、本博客介紹方法實現的效果圖如下


2、 重點知識點的介紹

@interface UIApplication (UIAlternateApplicationIcons) // If false, alternate icons are not supported for the current process. @property (readonly, nonatomic) BOOL supportsAlternateIcons NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2));// Pass `nil` to use the primary application icon. The completion handler will be invoked asynchronously on an arbitrary background queue; be sure to dispatch back to the main queue before doing any further UI work. - (void)setAlternateIconName:(nullable NSString *)alternateIconName completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2));// If `nil`, the primary application icon is being used. @property (nullable, readonly, nonatomic) NSString *alternateIconName NS_EXTENSION_UNAVAILABLE("Extensions may not have alternate icons") API_AVAILABLE(ios(10.3), tvos(10.2)); @end

1 / supportsAlternateIcons 函數

????? 該函數是判斷設備是否支持備用 AppIcon 的功能。該功能的使用條件是設備的系統必須是 iOS 10.3 以上的版本。

2 / alternateIconName 參數

????? 該參數是一個只讀屬性的參數,如果該參數為 nil 時,那App 就會使用默認的AppIcon 。否則,App 使用的是備用AppIcon ,那么 alternateIconName 獲得的結果就是App 正在使用的備用AppIcon的名子。

3 / setAlternateIconName: completionHandler: 函數

????? 該函數是執行AppIcon 圖標替換的功能。在進行替換時 App 的系統會彈出一個提示讓你確定是否變更AppIcon 。如果,要自動變更AppIcon ,那么這個提示就不能出現。對于如何去掉這個提示,后面介紹。


3、使用備用AppIcon需要在工程的 info.plist 文件中進行配置,配置如下:

1、添加流程
  • 我們在工程的 Info.plist 文件中添加 Icon files(iOS 5)key 。該 key 的類型(Type)為 Dictionary
  • Icon files(iOS 5) 對應的字典,包含 2 個對象分別是: Primary IconNewsstand Icon。 這兩個對象的類型也是 * Dictionary*
  • 我們要使用備用的AppIcon ,那么我們就要在 Icon files(iOS 5) 對應的字典中,添加一個對象 CFBundleAlternateIcons 對象,該對象的類型是字典(Dictionary)。
  • 我們在CFBundleAlternateIcons 對象中添加備用*AppIcon 的圖像對象。如上圖 Icon1Icon2 所示,這兩個對象的類型也是字典。
  • 我們要在添加的AppIcon對象中在添加一個 CFBundleIconFiles 的對象,該對象的類型是數組(Array)。
  • CFBundleIconFiles 的對象中添加AppIcon 的圖像文件名字為元素,該元素的類型是 String,以便后期使用。
2、參數介紹
  • Primary Icon ?是默認 AppIcon 的對象。該對象包含 *Icon already includes gloss effectsIcon files 兩個對象。 *Icon already includes gloss effects 是一個布爾類型,它表示AppIcon 是否是高光狀態。Icon files 是一個數組對象,它包含默認的AppIcons 的文件名字對象,對象類型是字符串(String)。
  • CFBundleAlternateIcons ??備用AppIcon 可能有好幾個,那么CFBundleAlternateIcons 包含的對象就不只一個。我們介紹其中一個例如 Icon1 包含 CFBundleIconFiles 一個存放AppIcon 圖像的數組。數組內是各個AppIcon 文件的名字。
  • Newsstand Icon ?? 這是報刊類 Newsstand App 的圖標設置。該對象包含 Binding edgeIcon filesBinding type 三個對象。Binding edge 是一個字符串對象,它的作用是設置Newsstand Icon 的位置,可選類型有 leftrightbottomIcon files 是一個數組對象,它里面存放圖像的文件名字。Binding type 是設置Newsstand Icon 歸屬的類型,類型可選有 Magazine*Newspaper


4、 核心代碼

#pragma mark Change 'AppIcon' -(void) changeAppIcon:(NSString *) iconName {// TODO: Get the App itselfUIApplication * application = [UIApplication sharedApplication];// TODO: Determine whether the device supports' AlternateIcons'/*** AlternateIcons : 擴展備用圖標。* 使用條件: ios10.3 以上的設備*/if ([application supportsAlternateIcons]) {// Change the 'AppIcon'[application setAlternateIconName:iconName completionHandler:^(NSError * _Nullable error) {// Change the abnormal result of 'AppIcon'NSLog(@"%@",error);}];} }

App 程序中調用上面的函數,就可實現AppIcon的變更。注意,當你調用時,系統會彈出一個提示,讓你確定進行AppIcon 的變更操作,確定后AppIcon 才會替換。如下所示:

5、清除變更 AppIcon 時系統彈出框

???????? 我們知道系統的彈出框是由 UIAlertController 來實現的,它屬于一個控制器。在彈出的時候會調用 presentViewController:animated:completion: ? 函數。那我們可以通過這個方法來阻止彈框的彈出。由于蘋果系統的不開放性,我們也沒發更改這個函數。目前,方法就是利用運行時,用我們創建的一個方法來替換這個方法。在我們的方法中來阻止彈框的彈出。

1、核心代碼

該段代碼可放在繼承的控制器中或者在控制器中直接寫。導入運行時的函數庫 #import < objc/runtime.h >

#pragma mark 彈窗的清楚 +(void)load {Method presentM = class_getInstanceMethod(self.class, @selector(presentViewController:animated:completion:));Method presentAlternativeM = class_getInstanceMethod(self.class, @selector(clearPresentViewController:animated:completion:));// 方法的切換method_exchangeImplementations(presentM, presentAlternativeM); }#pragma mark 清楚處理方法 -(void)clearPresentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion{// 跳轉頁面的類型if ([viewControllerToPresent isKindOfClass:[UIAlertController class]]) {UIAlertController * alertVctl = (UIAlertController *) viewControllerToPresent ;if (alertVctl.title == nil && alertVctl.message == nil) {return ;}}// 頁面回調[self clearPresentViewController:viewControllerToPresent animated:flag completion:completion]; }

6、代碼下載

  • 代碼下載,可在博客下留言和郵箱。
  • 可添加QQ:群號:185341804 (成功QQ吧),聯系群主獲取。

總結

以上是生活随笔為你收集整理的动态更新App的图标(AppIcon)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品国产欧美亚洲人人爽 | 国产一区二区三区四区五区六区 | 日本中文有码 | 国产成人在线视频 | 国产欧美一区二区三区精华液好吗 | 神马午夜av| 国产精品久久久久久久专区 | 国产一区资源 | 国产无套丰满白嫩对白 | 国产激情视频在线 | 亚洲熟妇无码av在线播放 | 玉足调教丨vk24分钟 | 丰满人妻翻云覆雨呻吟视频 | 国产一区二区精华 | 久久久精品在线 | 污污污www精品国产网站 | 五月天久久久久久 | 久久人 | 成人免费黄色小视频 | xnxx国产 | 暖暖成人免费视频 | 天天躁夜夜躁狠狠是什么心态 | 91国语对白| 亚洲综合免费观看高清完整版在线 | 精品国产午夜福利在线观看 | 15p亚洲| 成年免费在线观看 | 国产又粗又猛又黄又爽视频 | 久久人人爽人人爽人人片av高清 | 久久久久久无码精品人妻一区二区 | 国产网红在线观看 | 在线色网站 | 美女a视频 | 久草精品视频在线观看 | 国产91在线看 | 国产激情一区二区三区在线观看 | 亚洲欧美日本在线 | 日韩免费视频一区二区 | 艹少妇视频 | 韩日a级片 | 亚欧美色图 | 色偷偷91| 成品人视频ww入口 | 色狠狠一区二区 | 日批视频免费观看 | 噜噜吧噜噜色 | 色综合影视 | 美女激情av | 欧美夜夜 | 九九九精品视频 | 国产最新视频在线 | www.激情| 国产综合在线观看 | 免费国产在线视频 | 久久久久亚洲av成人毛片韩 | 日本xxxx高潮少妇 | a资源在线 | 亚洲国产成人精品久久久 | 伊人网在线观看 | 欧美自拍视频在线观看 | 激情超碰在线 | 精品三区视频 | 91操操| 武林美妇肉伦娇喘呻吟 | 永久av网站| 综合久久伊人 | 天堂网wwww | 性五月天| 国产一二在线 | 免费观看黄色一级片 | 久久久6| 在线视频 亚洲 | 黄页网址大全免费观看 | 日韩精品av一区二区三区 | 日韩午夜一区 | av免费在线网站 | 日韩欧美在线一区 | 日韩视频在线视频 | 久久com| 在线观看国产福利 | 三区四区 | 中文无码精品一区二区三区 | 中文字幕在线观看一区二区三区 | 日韩av无码一区二区三区不卡 | 欧美黄色大全 | 中文字幕第一页在线播放 | 国产精品麻豆成人av电影艾秋 | 色噜噜综合 | 久久久77| 狠狠操在线观看 | 奇米影视四色7777 | 粉嫩av一区二区 | 精品一久久| 黄色特一级 | 午夜影视福利 | 久久99国产精品视频 | 久久免费的精品国产v∧ | 免费黄网站在线 | 久久久久久久久久久久久久国产 |