快速将数据从项目传输到小部件

编程入门 行业动态 更新时间:2024-10-20 13:36:02
本文介绍了快速将数据从项目传输到小部件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

在我的项目中,我需要将用户 ID 发送到 iOS 中的小部件.但是要做到这一点,我的用户需要打开应用程序一次.不开放,信息只保留1天,之后消失,widget停止显示信息,等待开放申请.为此,我使用了 appGroup.
将数据从我的项目传输到小部件的正确方法是什么?

At my project i need to send user id's to widget in iOS. But for do that, my user needs to open application once. Without opening, information stays only 1 day, after that it vanishes and widget stops showing information and await for opening application. For do that i used appGroup.
What is the correct way to use transfer data from my project to widget?

推荐答案

Swift 5

按照以下步骤将数据从宿主应用传递到扩展程序.

Follow these steps to pass data from the host app to extensions.

选择项目目标>能力 >添加新的应用组(如果您已为开发者帐户启用权限,否则请先启用该权限)选择扩展目标并重复相同的操作.

if let userDefaults = UserDefaults(suiteName: "group.yourAppgroup") {
            createEventDic.removeAll()
            let eventDic = NSMutableDictionary()
            eventDic.setValue("YourString", forKey: "timeFontName")
            createEventDic.append(eventDic)
            
            let resultDic = try? NSKeyedArchiver.archivedData(withRootObject: createEventDic, requiringSecureCoding: false)
            userDefaults.set(resultDic, forKey: "setWidget")
            userDefaults.synchronize()

        } else {
        }

现在转到您的应用扩展程序并执行以下步骤以获取传递的数据.

if let userDefaults = UserDefaults(suiteName: "group.yourAppGroup") {
            guard let testcreateEvent = userDefaults.object(forKey: "testcreateEvent") as? NSData else {
                print("Data not found in UserDefaults")
                
                return
            }
            
            do {
                guard let eventsDicArray = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(testcreateEvent as Data) as? [NSMutableDictionary] else {
                    fatalError("loadWidgetDataArray - Can't get Array")
                }
                
                for eventDic in eventsDicArray {
                    let timeFontName = eventDic.object(forKey: "timeFontName") as? String ?? ""
                    
                }
            } catch {
                fatalError("loadWidgetDataArray - Can't encode data: \(error)")
            }
        }

希望它会有所帮助.干杯!

Hopefully, it will help. Cheers!

这篇关于快速将数据从项目传输到小部件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-26 02:59:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1128982.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:部件   快速   项目   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!