開發(fā)工具:Xcode 功能需要: SwiftUI實現(xiàn)UI頁面,iOS16.1以上系統(tǒng)使用
功能使用: 需應用為啟動狀態(tài)
功能說明
iOS16.1 系統(tǒng)支持實時活動功能,可以在鎖定屏幕上實時獲知各種事情的進展,MobPushSDK iOS 4.0.3版本已完成適配,可根據(jù)文檔對應使用。
集成步驟
添加依賴庫
ActivityKit.farework
SwiftUI.farework
配置?程?持 LiveActivity
在主?程的 Info.plist ?件中添加?個鍵值對,key 為 NSSupportsLiveActivities,value 為 YES
添加實時活動擴展
添加擴展項目依賴庫
UI實現(xiàn)
實時活動UI需開發(fā)者自行實現(xiàn),可參考Demo處理,注意需將擴展的UI組件引用到主項目上
實時活動API
上傳實時活動token registerLiveActivityWithID()
示例代碼:
/*!
* @abstract 注冊LiveActivity并上報PushToken
* 在PushToken更新時,需同步調(diào)用該接口
* 在LiveActivity結(jié)束時,需同步調(diào)用該接口,PushToken為nil
*
* @param liveActivityId 標識某一個LiveActivity
* @param pushToken 對應LiveActivity的PushToken
* @param handler 結(jié)果回調(diào)
*/
[MobPush registerLiveActivityWithID:@"mpLiveActivity"
pushToken:token
completion:^(NSError *error) {
if (error) {
NSLog(@"Register LiveActivity Failed: %@", error.localizedDescription);
}
}];
}
活動開始startActivity()
示例代碼:
static public func startActivity(pushTokenUpdate:@escaping (Bool, Data?)- >Void) {
guard ActivityAuthorizationInfo().areActivitiesEnabled else {
//不可用
pushTokenUpdate(false, nil)
//監(jiān)聽可用狀態(tài)
// for await enablment in ActivityAuthorizationInfo().activityEnablementUpdates {
// print("Activity AuthorizationInfo change to (enablment)")
// }
return
}
endPreActivity()
let state = HeartNoteLiveActivitsLiveAttributes.ContentState(prograssState: .Car)
let attri = HeartNoteLiveActivitsLiveAttributes(name: "MPLiveActivities")
do {
let current = try Activity.request(attributes: attri, contentState: state, pushType: .token)
Task {
for await tokenData in current.pushTokenUpdates {
//監(jiān)聽token更新 注意線程
pushTokenUpdate(true, tokenData)
}
}
Task {
for await state in current.contentStateUpdates {
//監(jiān)聽state狀態(tài) 開發(fā)者可自行編寫回調(diào)監(jiān)聽
print("1content state update: tip=(state.prograssState)")
}
}
Task {
//監(jiān)聽activity狀態(tài) 開發(fā)者可自行編寫回調(diào)監(jiān)聽
for await state in current.activityStateUpdates {
print("activity state update: tip=(state) id:(current.id)")
}
}
} catch(let error) {
print("error=",error)
pushTokenUpdate(false, nil)
}
}
更新Activity狀態(tài)updateActivityState()
static public func updateActivityState(_ value: Int) {
Task {
guard let current = Activity< HeartNoteLiveActivitsLiveAttributes >.activities.first else {
return
}
let state = HeartNoteLiveActivitsLiveAttributes.ContentState(prograssState: PrograssState(rawValue: value) ?? .Arrived)
let alertConfiguration = AlertConfiguration(title: "Delivery Update ", body: "Delivery Update State to (state.prograssState.rawValue)", sound: .default)
await current.update(using: state, alertConfiguration: alertConfiguration)
}
}
關(guān)閉Activity狀態(tài)endPreActivity()
//建議關(guān)閉應用的時候要關(guān)閉 不然下次啟動就脫離控制了
static public func endPreActivity() {
let activities = Activity< HeartNoteLiveActivitsLiveAttributes >.activities.filter { act in
return act.activityState == .active
}
guard activities.count > 0 else { return }
for item in activities {
Task {
// print("end activity (item.id)")
await item.end(dismissalPolicy:.immediate)
}
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
iOS
+關(guān)注
關(guān)注
8文章
3395瀏覽量
150604 -
SDK
+關(guān)注
關(guān)注
3文章
1036瀏覽量
45935
發(fā)布評論請先 登錄
相關(guān)推薦
跨Android、iOS、鴻蒙多平臺框架ArkUI-X
在Android、iOS、鴻蒙多個平臺上提供生動而流暢的用戶界面體驗。 一、配套關(guān)系 表1 版本軟件和平臺配套關(guān)系 目標平臺 項目編譯使用OS SDK版本 備注 OpenHarmony 4.0 (API
EspTouch for IOS V3.0為什么配置不了ESP8266?
ESP8266固件版本:
SDK version:1.0.1
IOT VERSION = v1.0.2t45772(a)
TYPE: ESPTOUCH V1.4
espTouch for IOS
發(fā)表于 07-15 08:16
iOS版谷歌地圖正式上架 定位準可語音導航
。Thenextweb 表示:“ iOS 版谷歌地圖應用能允許用戶使用語音同步駕車導航,獲得全球范圍內(nèi)的實時交通信息。目前這款應用正在極力上線其它國家的App Store ,因此美國或部分地區(qū)以外的用戶或許仍需耐心等待(目前中國地區(qū)已可下載)?!?/div>
發(fā)表于 12-15 10:36
iOS7變化不大 iOS8將很有趣
據(jù)《商業(yè)內(nèi)幕》網(wǎng)站分析認為。雖然主導蘋果iPhone開發(fā)的斯科特?福斯代爾(Scott Forstall)去年11月離職。但基于已經(jīng)規(guī)劃好的開發(fā)計劃和時間線,蘋果下一代操作系統(tǒng)iOS 7不會有
發(fā)表于 03-18 14:11
ios人才
獵頭推薦職位:世界某知名企業(yè):IOS應用軟件開發(fā)工程師,地點:深圳南山,要求:有2年以上的IOS應用軟件開發(fā)經(jīng)驗及本科以上學歷背景,請有興趣者立即聯(lián)系本人Eva,QQ:2724316257私聊!
發(fā)表于 11-04 11:52
BLE_RTC limited to IOS?
比較了iOS和Android,PoS4xBulyRTC的例子顯示了不同的結(jié)果。
幾乎在iOS中運行。它們的功能運行良好,但在Android中,UART中的字符串導致字符破損。和
在連接過程中。幾乎
發(fā)表于 10-10 08:17
iOS網(wǎng)頁設(shè)計的關(guān)鍵考慮因素是什么?
為 iOS 設(shè)計時最重要的細節(jié)是確保網(wǎng)站響應迅速并針對移動設(shè)備進行優(yōu)化,注意用戶界面和導航,結(jié)合 iOS 特定功能,并在不同的 iOS 設(shè)備和版本之間進行全面測試。
發(fā)表于 05-25 07:24
九年時間:蘋果iOS SDK雙贏歷程
九年前,蘋果發(fā)布了iOS SDK,也就是我們經(jīng)常說的開發(fā)工具包,iOS SDK的發(fā)布讓第三方開發(fā)者可以構(gòu)建iPhone與iPod touch的原生應用程序,在iTunes App St
發(fā)表于 03-08 14:26
?999次閱讀
蘋果發(fā)布通知稱,任何提交的 app 更新必須兼容 iOS 11 SDK
蘋果今天通知廣大 iOS 開發(fā)者,將從今年 7 月份開始,任何提交的 app 更新必須兼容 iOS 11 SDK,而且也必須支持 iPhone X 的 Super Retina 屏幕。
MobPush iOS端SDK API推送配置方法
MobPush是MobTech推出的一款免費的推送服務(wù)工具,集成方便簡單快捷,且提供完整的可視化數(shù)據(jù)和強大的管理后臺。本文將詳細介紹ios端推送配置方法。
蘋果發(fā)布iPhone14靈動島的“實時活動”設(shè)計指南
蘋果的iOS 16.1目前正在測試中,其中包括對實時活動API的支持。該API允許開發(fā)人員向鎖屏或智能島添加實時通知。隨著iOS 16.
MobPush:Android SDK 集成指南
MobPush是一款旨在提供一站式解決方案的智能推送開發(fā)者工具,可以有效提高用戶參與度和粘性,從而帶來更多的業(yè)務(wù)效益,以下是最新版MobPush: Android SDK集成指南。
評論