關于UIApplicationShortcutItem注意

看了很多文章的介紹,最后還是看官方文檔最清楚。

1.動態設置和靜態設置
  • 動態設置就是在代碼中添加或更新shortcutItem.相關的類有
    UIApplicationShortcutItemUIApplicationShortcutIcon

  • 靜態設置是指在Info.plist文件中,用鍵值對的方式添加. 需要自己添加,xcode貌似不會自動提示key. - -|||

<key>UIApplicationShortcutItems</key>
    <array>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>open-favorites</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Favorites</string>
            <key>UIApplicationShortcutItemType</key>
            <string>com.mycompany.myapp.openfavorites</string>
            <key>UIApplicationShortcutItemUserInfo</key>
            <dict>
                <key>key1</key>
                <string>value1</string>
            </dict>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconType</key>
            <string>UIApplicationShortcutIconTypeCompose</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>New Message</string>
            <key>UIApplicationShortcutItemType</key>
            <string>com.mycompany.myapp.newmessage</string>
            <key>UIApplicationShortcutItemUserInfo</key>
            <dict>
                <key>key2</key>
                <string>value2</string>
            </dict>
        </dict>
    </array>
2.區別

靜態設置是在應用安裝的時候完成加載的,而動態設置需要在運行到對應代碼時(runtime) 才加載,所以同時有靜態加載的Item和動態加載的Item時,靜態加載的Item會排在前面。

3.運用

文檔推薦對可以直接使用的一些功能進行靜態設置,而對于需要達到一些要求之后才能使用的Item就進行動態加載,并且可能一些靜態加載的Item在App使用之后可能出現功能或者顯示的變化,可以通過動態加載的方式進行更新。

    UIApplicationShortcutItem *anExistingShortcutItem = [existingShortcutItems objectAtIndex:anIndex];

    NSMutableArray <UIApplicationShortcutItem *> *updatedShortcutItems = [existingShortcutItems mutableCopy];

    UIMutableApplicationShortcutItem *aMutableShortcutItem = [anExistingShortcutItem mutableCopy];

    [aMutableShortcutItem setLocalizedTitle: @"New Title"];

    [updatedShortcutItems replaceObjectAtIndex:anIndex withObject: aMutableShortcutItem];

    [[UIApplication sharedApplication] setShortcutItems: updatedShortcutItems];

4.擴展:UIApplicationShortcutWidget

iOS 10中添加了UIApplicationShortcutWidget這個key,用于在桌面使用3D Touch時顯示widget. 這個key只要寫在Info.plist中就可以了,它的值就設置為對應的widget的bound id.

參考:Information Property List Key Reference

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,245評論 4 61
  • 有人說20多歲是一個姑娘最美好的時光,我深以為然。20多歲的姑娘,既有著小女孩的嬌憨和天真,又多了幾分女人的柔情,...
    九月妖妖閱讀 695評論 2 3
  • 跳出日本圈子來看日語 我々日本人は言うまでもなく、日常生活における他愛もない會話から物事を深く思考するに至るまで日...
    禾禾呈呈閱讀 259評論 0 0
  • 一直謬解了蘇格拉底的話:必須追求好的生活。 怎樣才算好的生活?是滿滿的舶來品,開著勞斯萊斯、法拉利,渾身國際名牌,...
    暗香屋閱讀 753評論 4 3