开发之前要了解的是,小组件不是小app,不能做太多的对数据的增删改查的类似的复杂操作,经过我们探索发现最多能当做UI视图使用,也能发网络请求,你把它当成UIView就好,并且还仅支持单向数据流(基于TimeLine...在小组件里面加一个按钮经常出现边缘太大,样式填充问题(红线是笔者截图加上去的请忽略)
浅蓝色透明度的填充部分,需要设置按钮的显示样式才能去掉,默认就是上图这种方式有填充....,不但麻烦,Xcode15以后这玩意还提供自动转换到新的框架中的方法.总之 可以理解为我们点击按钮触发的是系统的Intent意图命令就行了,后续看我们怎么处理....在笔者肤浅的认知中认为,实现Extension和app通讯有几种方式
NSUserDefault 共享数据
openURL类似的widgetURL方式通过专用的scheme协议跳转app传递参数
这两种有使用限制和场景约束...这里的代码是在主App中实现,因为作为数据提供方,主app有对小组件频控的能力和责任.