知晓程序|开发|刚上线的苹果「小程序」得这么做( 二 )
长时间内推送
用户在AppClip完成一个任务后 , 可能过了几天才会收到推送 。 比如用户在AppClip租了辆车 , 租期为3天 , 到期后会用户收到「该还车了」的推送 。 这种方式和普通app的消息推送一样 , 都需要获取用户的推送授权 。
使用知晓云MinCloud创建一个AppClip
接下来将演示如何使用知晓云MinCloud快速创建一个动态数据服务的AppClip 。 该Clip主要展示了一个产品列表 , 点击产品即可跳转到产品详情页 。 通过集成MinCloud从知晓云获取产品信息 , 最后为该Clip生成一个二维码 , 用户只需使用iOS14的扫码工具扫描二维码 , 即可跳转到Clip 。
创建AppClipTarget
在已存在的SugarDemo工程创建一个AppClipTarget , 并命名为SugarClip 。
文章图片
文章图片
这时在工程目录中多了个SugarClip目录 , 接下来我们就可以在这里实现AppClip了 。
文章图片
导入MinCloud
通过CocoaPods集成MinCloud , 打开Podfile文件 , 添加以下内容:
platform:ios,'11.0'target'SugarClip'douse_frameworks!pod'MinCloud',:git=>'https://github.com/ifanrx/hydrogen-ios-sdk.git'pod'Moya','~>13.0'pod'SnapKit'pod'Kingfisher'endtarget'SugarDemo'douse_frameworks!pod'MinCloud',:git=>'https://github.com/ifanrx/hydrogen-ios-sdk.git'pod'SnapKit'pod'Kingfisher'end
添加完后 , 执行podinstall安装 。
安装好MinCloud后在工程中导入MinCloud , 打开SugarClip的AppDelegate.swift文件 , 在文件顶部添加importMinCloud , 并在application(_:didFinishLaunchingWithOptions:)方法内添加:
funcapplication(_application:UIApplication,didFinishLaunchingWithOptionslaunchOptions:[UIApplication.LaunchOptionsKey:Any]?)->Bool{//Overridepointforcustomizationafterapplicationlaunch.BaaS.register(clientID:''fdc4feb5403a985fe681'')//注册clientidBaaS.isDebug=true//是否打印日志returntrue}
获取产品数据
Product结构
首先创建一个Product结构 , 用于表示产品信息 。
structProduct:Decodable{publicvarid:String//产品idpublicvarname:String?//产品名称publicvarparticipantCount:Int?//参与讨论人数publicvarcoverImage:String?//封面图publicvarrating:Double?//产品评分publicvarbrief:String?//产品简介publicvardescription:String?//产品描述}
获取产品列表
funcloadProductList(){lettable=Table(tableId:''105766'')table.find{[weakself](recordList,error)inifletlist:List=recordList?.listInfo.decoded(){self?.products=list.objectsself?.tableView.reloadData()//刷新产品列表}}}
Table对应MinCloud的表结构 , 通过表id就可以操作对应表数据 。 使用find操作来获取产品表所有产品记录 , 获取产品记录后 , 将其解码为List对象 。
获取产品详情
funcloadProduct(){lettable=Table(tableId:''105766'')table.get(productId){[weakself](record,error)inifletproduct:Product=record?.recordInfo.decoded(){self?.product=productself?.displaySubviews()//展示产品详细信息}}}
使用get操作指定产品的id获取产品的所有信息 , 获取产品记录后 , 将其解码为Product对象 。
产品页面
在项目中创建了ProductCell、RatingLabel、BriefView等视图控件 , 分别显示产品列表项、产品评分、产品简介等信息 。 而这些控件可以在主App和AppClip复用 。 因此在SugarDemo目录中创建了需要复用的组件 , 并将对应的文件的TargetMembership中勾选SugarDemo和SugarClip即可复用 。
- 脑极体|百度之星正在出圈,用十六年打造程序员版“天才请就位”
- 程序员|我国超重型火箭核心设备亮相,载重超“胖五”5倍,还用上了3D打印
- 新天域互联|将开发其首个英国数据中心园区?,谷歌购买33英亩土地
- 中国青年网|人脸追踪、双目活体对齐……系统梳理人脸识别开发的硬核技巧
- 美通社|Innotek开发高效磁性素材,LG
- 3D科学谷|深度剖析GE通过3D打印开发的一体式涡轮机中心框架
- javascript|游戏开发之旅-JavaScript重新介绍
- dji|大疆召开发布会发布新品,然而发布的却不是无人机
- 程序员|码农新机会!2019-2020这个领域程序员缺口很大!
- IT之家|e 键通”支付宝小程序上线,应急管理部“灾害事故