android桌面小元件開發_OC主工程重新整理WidgetKit 桌面小元件
阿新 • • 發佈:2021-01-09
技術標籤:android桌面小元件開發
當想在主工程重新整理小元件時,會使用到如下程式碼
WidgetCenter.shared.reloadAllTimelines()
1. 嘗試在 中匯入標頭檔案
如圖,會發現只有兩個標頭檔案,開啟標頭檔案後,找不到我們想要使用的程式碼定義。
2.由於第一步,所以我們建立 檔案,
由於主工程是純OC工程,因此建立時會提示我們建立橋接檔案。
SwiftUIAndAppDemo-Bridging-Header
3.我們需要在WidgetKitManager.swift中編寫重新整理小元件的程式碼
import [email protected]
@available(iOS 14.0, *)class WidgetKitManager: NSObject { @objc static let shareManager = WidgetKitManager() /// MARK: 重新整理所有小元件 @objc func reloadAllTimelines() { #if arch(arm64) || arch(i386) || arch(x86_64) WidgetCenter.shared.reloadAllTimelines() #endif } /// MARK: 重新整理單個小元件 /* kind: 小元件Configuration 中的kind */ @objc func reloadTimelines(kind: String) { #if arch(arm64) || arch(i386) || arch(x86_64) WidgetCenter.shared.reloadTimelines(ofKind: kind) #endif }}
4.在需要使用Swift程式碼的地方匯入標頭檔案,名字為主工程名-Swift.h
此檔案找不到,但是實際存在!
if (@available(iOS 14.0, *)) { [[WidgetKitManager shareManager] reloadAllTimelines]; [[WidgetKitManager shareManager] reloadTimelinesWithKind:@"Extension_Two"]; }
備註
#if arch(arm64) || arch(i386) || arch(x86_64) code#endif
如果不加上述程式碼,會打包報錯
重新整理單個小元件或者全部小元件根據自己的需求使用,當重新整理單個小元件時,傳入kind值。
假如傳錯或者不傳,暫未嘗試。