欢迎使用适用于 Apple 平台的 MediQuoSDK,这是将 MediQuo 功能集成到您的应用程序中最简单的方法!
此存储库包含一个示例应用程序,您可以检查该应用程序,了解如何将 MediQuo SDK 集成到您自己的应用程序中。
注意: 如果您使用的是 v10.0 版本之前的 SDK 版本,那么这是一个重大更改,您应该删除之前的所有集成,然后再继续。
我们支持通过 Swift Package Manager 以及作为独立的 XCFramework 进行安装。
https://github.com/mediquo/mediquo-ios-sdk.git
,然后将该包添加到您的应用程序。为了集成 SDK,我们同时支持基于 UIKit 的应用程序(带有 AppDelegate
和 SceneDelegate
的应用程序)和基于 SwiftUI 的应用程序(带有 @main
和 WindowGroup
的应用程序)。
我们建议在授权用户登录后立即初始化 SDK。 在此之前,请确保您手头有这两个值
API_KEY
:由 mediQuo 提供USER_ID
:使用 Patients API 创建您可以简单地初始化它
Task {
self.mediquo = try await MediQuo(apiKey: API_KEY, userID: USER_ID)
}
创建 MediQuo
对象后,我们调用 getSDKViewController(for:)
以创建一个 UIViewController
并根据您的需要将其添加到层次结构中(在此示例中,我们以模态方式呈现此 View Controller)。 SwiftUI 应用有等效的 API 可用。
let vc = self.mediquo.getSDKViewController(for: .professionalList)
self.present(vc, animated: true)
所有可能的视图都在 MediQuo.ViewKind
中定义,您可以使用 Xcode 的自动完成功能为任何用例找到合适的视图。
注意: 对于大多数应用程序,我们建议在授权用户会话开始时实例化单个 MediQuo
对象。 将此实例存储在 AppDelegate 或您的依赖管理系统中,以确保在整个应用程序中保持一致的访问权限。
但是,如果用户注销,请务必调用此方法以取消身份验证并正确清理实例
try? await mediquo.deauthenticateSDK()
这可以防止未经授权的访问,并确保新用户登录时处于全新状态。
MediQuo SDK 支持基于 Firebase 的推送以及常规的基于 APNS 的推送。
在您明确请求权限 向用户发送推送后,请务必覆盖您的 App Delegate 的 application(_:, didRegisterForRemoteNotificationsWithDeviceToken: Data)
并添加
try? await mediquo.setPushNotificationToken(type: .appleAPNS(data))
首先,您应该像使用 Apple 的 APNS 集成时一样请求用户的权限。 然后,从 Firebase 获取令牌。 获取后(以及每次更改时),使用以下代码将其传递给 Mediquo 的 SDK
try? await mediquo.setPushNotificationToken(type: .firebase(token))
为了让用户有机会在收到推送时继续与您的应用程序互动,我们提供了一个辅助 API,用于将传入的推送有效负载解析为 MediQuo 视图。 但是,调用此 API 并根据您的需要呈现此视图是您作为应用程序所有者的责任。
例如
public func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = notification.request.content.userInfo as? [String: any Sendable]
/// Handle pushes from other sources different from Mediquo
/// and only call the MediQuo SDK if you haven't handled this push yourself
/// Generate a ViewController from the remote push payload
let vc = self.mediquo.getSDKViewController(forRemotePush: userInfo)
// Present the ViewController returned by the MediQuoSDK however you want.
self.rootViewController.present(vc, animated: true)
completionHandler()
}
您可以在此处找到通知有效负载的示例。
为了监听事件,请确保您符合 MediQuoEventDelegate
协议,并使用以下方式将该对象的实例设置为委托
self.mediquo.eventDelegate = self
您可以监听诸如套接字连接更改或传入呼叫之类的事件。 请参阅示例应用程序代码,以了解如何集成此功能。
注意: 从 SDK 的 10.7.1 版本开始,如果收到来电并且 eventDelegate
为 nil,则 MediQuo
将尝试呈现全屏 UIViewController
来处理该呼叫。
SDK 允许用户发送语音备忘录、图像和文件,因此为了允许此功能,您必须将以下条目添加到您的 Info.plist
,并附上适当的描述
NSMicrophoneUsageDescription
NSCameraUsageDescription
SDK 将使用您应用程序的 Accent Color 自定义其外观和风格。 如果您需要任何其他自定义点,请随时在此存储库中打开一个Issue以请求任何功能。
在 SPM 集成期间,如果您发现诸如“从 'https://github.com/mediquo/mediquo-ios-sdk/releases/download/X.X.X/MediQuoSDK.xcframework.zip' 返回的无效存档,二进制目标 'XXX' 需要此存档”之类的问题,请关闭 Xcode 并在终端中运行以下命令。
rm -rf $HOME/Library/Caches/org.swift.swiftpm/
rm -rf $HOME/Library/org.swift.swiftpm