將任何 iOS 應用程序實現為 iMessage 應用程序的步驟
已發表: 2020-08-042016 年,iOS 10 推出,也許最重要的新聞與這個標誌性的聊天有關,這在當時非常引人注目,即使在非 Apple 客戶中也是如此。 在 iOS 10 中,應用程序獲得了發送和接收消息的能力,因為 Apple 為設計師推出了消息框架。 今天在這個 IOS 模型中,我們將討論 iMessage 應用程序開發。
正如 Apple 所說,該框架可用於創建應用程序或將此通知應用程序集成到現有項目中。 這將使客戶無需離開 iMessage 即可與外部應用程序關聯。 從根本上說,Apple 為開發人員提供了兩種選擇:要么完全在 iMessage 中運行他們的應用程序,要么將其實用性集成到他們當前的 iOS 應用程序中。 發送 iMessage 提供的分期付款是基於 iMessage 的應用程序中最有趣的用途之一。
在本文中,無論如何,我們將討論在當前移動應用程序中設置 FaceTime 和 iMessage。 這將允許您的用戶在設備上使用 FaceTime 和 iMessage 而無需離開您的應用程序。
- 什麼是 iMessage,您將如何添加到您的移動解決方案中?
- 可以在 iMessage 應用程序中訪問容量:
- 以下是一些利用 iMessage 協調的知名應用程序:
- iMessage 使用情況
- 在主要應用程序中,保留您的計劃列表:
- 在 iMessage 擴充中,讀取備用信息:
- 現在,您終於可以開始使用 iMessage 增強功能發送幾條消息了。 下面是一些示例代碼和後續的 UI:
- 測試 iMessage 應用程序
- 這是讓應用程序正確開始所需要的:
- 測試應用程序快捷方式和分屏
什麼是 iMessage,您將如何添加到您的移動解決方案中?
自 iOS 10 以來,該服務已經非常先進。例如,連接評論目前允許用戶直接從 iMessage 觀看 YouTube 視頻,例如,無需打開程序。 貼紙和繪圖控制台是此通知服務中出現的另外兩個新功能。
該服務還可以與 Siri 配合使用,這樣用戶就可以在不聯繫 iPhone 或 iPad 的情況下向某人發送消息或查看是否有任何即將收到的消息。 2017年,iOS 11帶來了新的安裝能力; 目前可以想像通過 Apple Pay 進行直接分期付款。 iMessages 的最新變體與其恢復的結構和新影響分離的最後一件很酷的事情是與 iCloud 同步,因此消息在設備之間始終保持現代。
此外,iMessage 一直比 SMS 或 MMS 更快、更有幫助。 顯而易見,它提供了許多亮點,因此讓您的客戶在不離開您的應用程序的情況下獲得它們可能是一個非凡的想法。 具有 iMessage 應用程序協調功能的知名應用程序。
為您推薦: iOS 和 Android 應用程序開發之間的差異。
可以在 iMessage 應用程序中訪問容量:
- 遊戲化。
- 移動分期付款。
- 餐館的建議。
- 預訂確認。
以下是一些利用 iMessage 協調的知名應用程序:
- Evernote:用戶現在可以在應用程序中安排個人和專業人士活動,並在不離開 iMessages 的情況下提供包含聯繫人的便條。
- OpenTable:客戶可以使用 iMessage 預訂餐桌,並在群聊中對餐廳進行投票。
- 嚎叫:用戶可以在 iMessage 中與聊天中的朋友即時分享最近看到的區域。
- ESPN:用戶可以直接從 iMessage 向朋友分享分數並使用 iOS 10 豐富的信息觀看比賽功能。
- Square Cash:用戶可以直接從 iMessage 向朋友的銀行匯款。
iMessage 使用情況
目前我們將詳細介紹如何將 iMessage 集成到您當前的應用程序中。 iMessage 是一個不同的目標,因此第一步是將它添加到您的任務中。 轉到文件 -> 新建 -> 目標將打開必要的窗口。 選擇iMessage Extension並單擊Next之後,您將看到此目標的另一個管理器,其中包含一個默認的查看控制器和故事板。 我們稍後會回到這些。
由於 iMessage 是一個不同的目標,它需要一個單獨的應用程序標識符和配置文件。 登錄您的工程師帳戶並為另一個目標的包標識符生成另一個 App ID。 準備好您的 App ID 後,轉到Provisioning Profiles部分並為您的新 App ID 創建、下載和引入 Development 和 Production provisioning profiles。
設置配置文件後,您就可以開始編碼了。 您的新目標將擁有自己的.xcassets文件,其中包含一個應用程序符號佔位符,允許您以與其他應用程序類似的方式設置 iMessage 應用程序符號。 您可以設置應用程序符號,這樣您就可以更輕鬆地在目標列表中找到您的應用程序。 選擇消息以關注目標綱要並運行它。
該應用程序當前將在設備\模擬器上打開,您將在列表中看到您的應用程序。 如果您的應用程序不存在,請單擊更多按鈕以打開應用程序列表屏幕; 此時,單擊編輯並啟用您的應用程序。 由於您還沒有轉換任何東西,您的應用程序將顯示默認的Hello World屏幕。
我們的目標信封包含Messages View Controller.swift和Main Interface.storyboard 。 我們應該包括Table View並將其設置為顯示我們應用程序中的一些數據,例如計劃列表。 儘管如此,我們將如何從我們的主要應用程序中找出這個綱要? 應用程序組會有所幫助。 我們應該再次返回開發人員門戶並選擇標識符 -> 應用程序組並進行另一次收集。
雙重註意,應用程序組有權使用您的應用程序和 iMessage 增強應用程序標識符。 現在在您的任務中,轉到設置。 對於這兩個目標,選擇Capabilities,授權 App Groups並檢查您創建的應用程序組的案例。 由於您已經添加了應用程序集合,因此您可以使用NS User Defaults在第一個和 iMessage 擴展之間移動信息。
您可能會喜歡:檢查您的應用程序是否已準備好提交到 iOS App Store 的 5 個提示。
在主要應用程序中,保留您的計劃列表:
let plans = ["Recipe 1", "Formula 2", "Formula 3", "Formula 4", "Formula 5", "Formula 6", "Formula 7"]; let defaults = UserDefaults.init(suiteName: "group.mydomain.messages") defaults?.set(recipes, forKey: "myRecipes") defaults?.synchronize()
在 iMessage 擴充中,讀取備用信息:
let defaults = UserDefaults.init(suiteName: "group.mydomain.messages") whenever let savedRecipes = defaults?.array(forKey: "myRecipes") as? [String] { self.recipes = savedRecipes }
使用上面的代碼和幾個UITableViewDataSource 回調,我們將得到我們的主要應用程序計劃的綱要,以顯示在 iMessage 擴充中。
現在,您終於可以開始使用 iMessage 增強功能發送幾條消息了。 下面是一些示例代碼和後續的 UI:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { _ = [tableView.deselectRow(at: indexPath, energized: true)] /Collapse plans see if it's extended on the off chance that (self.presentationStyle == .extended) { self.requestPresentationStyle(.compact) } /Layout for message let design = MSMessageTemplateLayout() layout.image = UIImage.init(named: "salad.jpeg") layout.caption = "\(self.recipes[indexPath.row]) - What a superb serving of mixed greens!" /The message itself let message = MSMessage() message.layout = design /Send a message to a dynamic discussion self.activeConversation?.insert(message, completionHandler: { (mistake) in on the off chance that (mistake == nil) { print("Message sent") } else { print("Error!") } }) }
這就對了! 現在您了解瞭如何在您的應用程序中執行 iMessage。 最後,我們應該轉向其他可以使您的應用程序內部的通信更加有趣的東西:FaceTime 混合。
測試 iMessage 應用程序
iMessage Apps 的推出歡迎 iOS 工程師組裝他們應用程序的擴展,允許用戶從 iMessage 內部與他們合作。 對於成功構建這些擴展並提升客戶體驗的團隊來說,這是一個巨大的成功,然而,承諾無論如何都是一項可疑的任務。
這是讓應用程序正確開始所需要的:
請務必在 iMessage 內部和外部測試第一個應用程序。 這將保證通知、客戶端承諾和 UI 在大多數情況下都能正常工作,無論它是通過本機應用程序還是通過 iMessage 獲取。
您應該在所有 iOS 10 相關設備上以各種尺寸進行這些測試。 請記住,iOS 10 不適用於 iPad 2、iPad Mini、iPhone 4S 及更低版本。 這將在您的測試樹中創建一個測試分支,因此以類似的方式進行規劃,並確保您的 iMessage 測試在 iOS 10 設備上唯一激活。
由於 iMessage 需要網絡傳輸器可用性,因此請跨網絡條件進行測試(不考慮網絡可用性)。 您無疑可以使用基於雲的測試平台來為全球客戶模擬網絡條件來進行這些測試。
此外,您的測試自動化系統需要全面的設備控制——應用程序上下文和設備上下文——以便它可以連接到設備,就像 iMessage 應用程序在接聽電話、短信和框架彈出窗口時一樣。
iOS 工程師並不是唯一面臨這些測試障礙的人。 Android 7.x 和 7.1 Nougat 的發布帶來了兩個具有廣泛用戶體驗和增加應用程序通信的比較亮點。
您可能還喜歡: iOS 應用程序開發的最佳編程語言。
測試應用程序快捷方式和分屏
應用程序快捷方式使 Android 客戶端能夠與本地應用程序之外的顯式應用程序功能進行交互(例如 Apple 的 Force Touch)。 分屏實用性使兩個應用程序能夠並排顯示。 再一次,這些能力對於客戶的承諾來說是非凡的。 但是,它們可能會打亂您的測試計劃。
App Shortcuts 的出現需要與上述相同的測試協議:在新應用程序容量內外測試應用程序,跨不同設備和網絡條件進行測試,並確保您的測試系統結構具有全面的設備控制。 關於 Split Screen 的實用性,由於應用程序窗口大小可以在不同的設備上有區別地指定,因此需要嘗試不同的屏幕大小。 這樣做將保證您的移動應用程序客戶端體驗 (UX) 在彈出消息或即時消息通過時不會受到干擾。
這篇文章是由隱士 Chawla 撰寫的。 Hermit 是 AIS Technolabs 的一名醫學博士,該公司是一家網頁設計和開發公司,通過 iPhone 應用程序原型設計服務幫助全球企業發展。 我很樂意分享有關社交媒體營銷服務和遊戲設計開發等方面的想法。關注他:Facebook | 推特 | 領英。