将任何 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 | 推特 | 领英。