Commit aa7e9222 authored by yqz's avatar yqz

没有widgets的正常版本

parent d0038a1f
//
// AppIntent.swift
// BatteryWidget
//
// Created by edy on 2025/4/2.
//
import WidgetKit
import AppIntents
//struct ConfigurationAppIntent: WidgetConfigurationIntent {
// static var title: LocalizedStringResource { "Configuration" }
// static var description: IntentDescription { "This is an example widget." }
//
// // An example configurable parameter.
// @Parameter(title: "Favorite Emoji", default: "😃")
// var favoriteEmoji: String
//}
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "tinted"
}
],
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
//
// BatteryWidget.swift
// BatteryWidget
//
// Created by edy on 2025/4/2.
//
import WidgetKit
import SwiftUI
struct Provider: TimelineProvider {
func placeholder(in context: Context) -> SimpleEntry {
SimpleEntry(date: Date(), type: 0, style: 0, battery: 0, storage: 0)
}
func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) {
let entry = loadSharedData()
completion(entry)
}
func getTimeline(in context: Context, completion: @escaping (Timeline<SimpleEntry>) -> Void) {
let entry = loadSharedData()
let timeline = Timeline(entries: [entry], policy: .after(Date().addingTimeInterval(60))) // 每小时更新
completion(timeline)
}
private func loadSharedData() -> SimpleEntry {
guard let sharedDefaults = UserDefaults(suiteName: "group.com.app.phonemanager"),
let data:[String:Int] = sharedDefaults.object(forKey: "widgetSharedData") as? [String:Int] else {
return SimpleEntry(date: Date(), type: 0, style: 0, battery: 0, storage: 0)
}
return SimpleEntry(date: Date(), type: 0, style: 0, battery: 0, storage: 0)
}
}
struct SimpleEntry: TimelineEntry {
let date: Date
let type: Int
let style:Int
let battery:Int
let storage:Int
}
struct BatteryWidgetEntryView : View {
var entry: Provider.Entry
var body: some View {
VStack {
Text("Time:")
Text(entry.date, style: .time)
}
}
}
struct BatteryWidget: Widget {
let kind: String = "BatteryWidget"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider:Provider()) { entry in
BatteryWidgetEntryView(entry: entry)
}
}
}
//extension ConfigurationAppIntent {
// fileprivate static var smiley: ConfigurationAppIntent {
// let intent = ConfigurationAppIntent()
// intent.favoriteEmoji = "😀"
// return intent
// }
//
// fileprivate static var starEyes: ConfigurationAppIntent {
// let intent = ConfigurationAppIntent()
// intent.favoriteEmoji = "🤩"
// return intent
// }
//}
//#Preview(as: .systemSmall) {
// BatteryWidget()
//} timeline: {
// SimpleEntry(date: .now, type: 0, style: 0, battery: 24, storage: 39)
//}
//
// BatteryWidgetBundle.swift
// BatteryWidget
//
// Created by edy on 2025/4/2.
//
import WidgetKit
import SwiftUI
@main
struct BatteryWidgetBundle: WidgetBundle {
var body: some Widget {
BatteryWidget()
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widgetkit-extension</string>
</dict>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict/> <dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.app.phonemanager</string>
</array>
</dict>
</plist> </plist>
This diff is collapsed.
...@@ -99,7 +99,6 @@ class WidgetViewController: BaseViewController { ...@@ -99,7 +99,6 @@ class WidgetViewController: BaseViewController {
stav.layer.cornerRadius = 20 stav.layer.cornerRadius = 20
stav.widgetType = (self.widgets == .battery ? 0 : 1) stav.widgetType = (self.widgets == .battery ? 0 : 1)
stav.widgetMode = widgetMode stav.widgetMode = widgetMode
// stav.clipsToBounds = true
view.addSubview(stav) view.addSubview(stav)
return stav return stav
}() }()
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict/> <dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.app.phonemanager</string>
</array>
</dict>
</plist> </plist>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment