iOS桌面小外掛程式 Widget Extension

2022-10-07 14:54:11 字數 3441 閱讀 9222

provider:控制器,這裡可以用來做小組件的重新整理操作

******entry: 這個是資料模型,provider 裡如果想更新資料到 widgetentryview,必須通過 ******entry 來實現,當然命名隨意了,但是這個必須繼承 timelineentry。同時也可以新增引數,變數什麼的,用來傳遞自己需要的資料型別。

widgetentryview: 這就是主檢視了,在這裡自定義頁面用來顯示在手機桌面。

import widgetkit

import swiftui

import intents

// 控制器,類似controller,這裡可以用來做小組件的重新整理操作

struct provider: intenttimelineprovider

func getsnapshot(for configuration: configurationintent, in context: context, completion: @escaping (******entry) -> ())

func gettimeline(for configuration: configurationintent, in context: context, completion: @escaping (timeline) -> ())

let timeline = timeline(entries: entries, policy: .atend)

completion(timeline)

}}// 資料模型,資料顯示在view上必須經過這裡

struct ******entry: timelineentry

// view,小組件的介面

struct widgetextensionentryview : view

}// 程式入口,初始化相關資訊,如provider,view等

@main

struct widgetextension: widget

.configurationdisplayname("小組件")

.description("this is an 測試一下 widget.")

}}// 自定義樣式

struct widgetextension_previews: previewprovider

}

// 自定義樣式

struct widgetextension_previews: previewprovider

}

// view,小組件的介面

struct widgetextensionentryview : view )

})})}}

// view,小組件的介面

// view,小組件的介面

struct widgetextensionentryview : view )

})}).widgeturl(url(string: "widgetextensiondemo://test1"))

case .systemmedium:

// 深度布局,螢幕深度

zstack(alignment: .center, content: ).foregroundcolor(.gray)

})}).widgeturl(url(string: "widgetextensiondemo://test2"))

case .systemlarge:

// 深度布局,螢幕深度

zstack(alignment: .center, content: )

}).foregroundcolor(.blue)

}).widgeturl(url(string: "widgetextensiondemo://test3"))

default:

// 深度布局,螢幕深度

zstack(alignment: .center, content: )

})}).widgeturl(url(string: "widgetextensiondemo://test1"))}}

}

// 更多小組件

@main

struct widgets:widgetbundle

@widgetbundlebuilder

var body: some widget

}struct customwidget:widget

.configurationdisplayname("自定義更多元件")

.description("ios14自定義更多小組件")

}}// 自定義ui

struct customentryview:view )

})}).widgeturl(url(string: "widgetextensiondemo://test1"))

case .systemmedium:

// 深度布局,螢幕深度

zstack(alignment: .center, content: ).foregroundcolor(.gray)

})}).widgeturl(url(string: "widgetextensiondemo://test2"))

case .systemlarge:

// 深度布局,螢幕深度

zstack(alignment: .center, content: )

}).foregroundcolor(.blue)

}).widgeturl(url(string: "widgetextensiondemo://test3"))

default:

// 深度布局,螢幕深度

zstack(alignment: .center, content: )

})}).widgeturl(url(string: "widgetextensiondemo://test1"))}}

}

參考1

參考2

刪除桌面小箭頭小盾牌

reg add hkey local machine software microsoft windows currentversion explorer shell icons v 29 d systemroot system32 imageres.dll,197 t reg sz f taskk...

桌面懸浮小控制項

受益於 寫的很好 一 首先需要兩個許可權 1.這個是感知桌面的許可權 2.獲取桌面狀態 二 然後需要來乙個自定義控制項 做乙個最簡單的,乙個紅色的小球。public class myview extends linearlayout public void setparams android.vie...

iOS字型外掛程式Fonty

fonty 是乙個ios字型外掛程式。它能讓你的ios 應用直接使用第三方的ttf,otf or ttc字型,而無需事先將字型檔案加入安裝包內。將fonty庫匯入到你的工程中。你可以直接手動匯入fonty資料夾,也可以使用cocoapods target targetname do pod font...