Demo App主要介紹App的開發流程,以及App的業務邏輯。在您開發自己的App前,建議您按照本文檔完成Demo App的操作。
前提條件
- 已在生活物聯網平臺創建了對應的產品,并完成產品功能定義、配置App等相關操作。
- 已在生活物聯網平臺創建了一個自有品牌App,并完成Demo App的源碼下載。詳細操作請參見創建自有App。
使用方式
整個Demo App使用Cocoapods管理依賴庫和模塊,目前支持Cocoapods 1.2.0版本。
源碼下載完成后,解壓縮后進入源碼目錄,執行
pod update。安裝完成,通過Xcode打開
IMSAppDemo.xcworkspace文件,然后編譯運行。
DemoApp源碼結構說明
整個Demo App結構上采用CocoaPods管理業務模塊,主工程有安全圖片,啟動頁面和AppDelegate實現,如下圖所示。
yw_1222_china_production.jpg為安全圖片,可以從生活物聯網平臺下載。Launch Screen.storyboard為啟動頁面,AppDelegate主要為SDK的初始化,主頁面的切換實現(登錄/主頁面),還有移動推送邏輯的處理。
SDK的初始化采用統一接口,詳細介紹請參見SDK初始化。
Demo App整個UI以tab形式組織,主要由Pods中的IMSLife和IMSLink庫實現。
- IMSLife是業務生活Demo對應的功能演示,包含整個App的主框架。支持設備發現、設備配網、設備綁定和設備狀態的獲取和控制功能。
- IMSLink則以基礎SDK為主,主要為tab中間頁- 調試頁面的實現。
- 主要Pod庫為SDK代碼示例如下。
- IMSAccountDemo:賬號相關的Demo,提供賬號登錄、登出等。
- IMSApiClientDemo:API通道的Demo,用于請求IoT接口業務。
- IMSBoneKitDemo:BoneMobile容器使用的Demo,用于展示容器的能力和接口。
- IMSLogDemo:演示日志。
- IMSMobileChannelDemo:長連接通道的Demo,演示訂閱/發送消息等功能。
- IMSPushDemo:移動推送的Demo,展示通知信息的提交。
運行Demo App
- 在控制臺上創建自有App并下載demo App,詳細請參見創建自有App。
- 集成安全圖片。詳細請參見集成安全圖片。
說明 安全圖片請勿重命名,否則會導致SDK初始化失敗。請您下載后直接放到App代碼工程下。
- 在xcode里編譯并運行Demo App。
Demo App運行后,會顯示國家/區域選擇頁面,請根據實際情況選擇國家/地區后,進入登錄App界面。
Demo App業務邏輯介紹
- 登錄自有App。
- 啟動App,選擇國家/區域。
- 選擇一個國家/區域后,進入登錄界面。
- 單擊免費注冊,進入注冊頁面。
- 輸入要注冊的手機號碼,并單擊下方發送短信校驗碼。
- 在短信校驗碼區域輸入收到的校驗碼,單擊下一步。
- 設置登錄密碼,并完成登錄。
- 設置調試界面。
IMSSDKEntryProtocol是各SDK模塊展現入口協議,這些SDK的使用示例均遵循了該展現入口協議。例如:@interface SDKEntryApiClient () <IMSSDKEntryProtocol>
,是API通道SDK的Demo示例。
Demo工程啟動后getAllClasses
方法會查找遵循了@protocol IMSSDKEntryProtocol
協議的類,然后依據其getSDKDisplayConfig
中的DisplayLevel按照順序在首頁展示,各個SDK模塊示例源碼統一放到LocalPods目錄。為了便于示例源碼學習,可以依據如下子模塊源碼文件名與展示名稱對應進行查找。
文件名 |
界面展示名 |
SDKEntryBoneKit |
Bone Mobile容器SDK |
SDKEntryApiClient |
API通道 |
SDKEntryMobileChannel |
長連接通道 |
SDKEntryAccount |
賬號和用戶 |
SDKEntryPush |
移動應用推送 |
- 控制默認的虛擬設備。
- 進入主頁面,如下圖所示。
上面顯示的4個虛擬設備,并不是默認創建的,需要自己更改代碼,在LinkViewController.m里面,將自己項目內創建的產品productKey填入下面的supportVirtualList變量中,再編譯運行,才可以創建和體驗虛擬設備。
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor ims_backgroundColor];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage bundleImageNamed:@"bar_add"] style:UIBarButtonItemStylePlain target:self action:@selector(addButtonItemDidClicked)];
// 用戶在控制臺創建設備后,可以把productKey列表設置進入,會自動生成虛擬設備
// 例如:@[a1B6cFQldpm, a1AzoSi5TMc, a1nZ7Kq7AG1, a1XoFUJWkPr]
self.supportVirtualList = @[];
}
- 單擊任意一個設備,進入該設備的面板頁面。
- 添加設備。
- 單擊首頁右上角加號,并選擇添加設備。
- 選擇添加設備,進入添加設備頁面。
通過產品列表添加需要使用官方項目對應的接入產品,這一步目前并沒有真實設備可以使用;如果想體驗這個流程,建議通過自主研發App的形式來完成。
添加設備支持兩種形式。
- 通過產品列表的形式進行配置,如上圖支持添加的設備。
- 支持零配配網方案的設備,發現到本地設備則會顯示出來,如上圖本地發現設備。
虛擬創建產品的設備
在沒有真實設備可以走通鏈路的情況下,可以使用虛擬設備進行體驗和開發。下面介紹如何為您創建的產品虛擬設備。
- 在LinkViewController.m中將產品對應的productKey,替換為自己項目的產品productKey。
self.supportVirtualList = @[@"axxxxeW",@"axxxxNe"];
說明 每個產品可以申請1個虛擬設備。多個產品productKey之間用逗號間隔。例如:self.supportVirtualList = @[@"a14btFiDNeW", @"a1PCB67lxlP"];
。
- 在xcode里編譯并運行App。
如果工程的localMsg中提示“此路由不存在,請與小二確認”,則需要在產品-人機交互中配置設備的面板。
- 重新登錄App,即可使用虛擬設備體驗您創建的產品的控制。