MiniAppPlugin
@objcMembers
open class MiniAppService {
/**
使用指定的配置设置 Mini App 插件。
- Parameters:
- appName: Mini App 的名称。
- webAppName: Web App的名字。
- mePath: Mini App 的路径数组。
- window: Mini App 关联的 UIWindow 对象。
- languageCode: 本地化的语言代码。
- userInterfaceStyle: Mini App 的用户界面样式(默认为 .light)。
- maxCachePage: 最大缓存页面数(默认为 5)。
- appDelegate: 符合 IAppDelegate 协议的对象。
- resourceProvider: 符合 IResourceProvider 协议的可选对象。
*/
open func setup(appName: String,
webAppName: String,
mePath: [String],
window: UIWindow,
languageCode: String,
userInterfaceStyle: UIUserInterfaceStyle = .light,
maxCachePage: Int = 5,
appDelegate: IAppDelegate,
resourceProvider: IResourceProvider? = nil) -> Void {}
/**
更新 Mini App 的主题。
- Parameters:
- userInterfaceStyle: 更新后的 UIUserInterfaceStyle。
*/
open func updateTheme(userInterfaceStyle: UIUserInterfaceStyle) {}
/**
更新 Mini App 的语言。
- Parameters:
- languageCode: 更新后的语言代码。
*/
open func updateLanguage(languageCode: String) {}
/**
预加载 Mini App,并使用指定的配置。
- Parameters:
- config: 包含 Mini App 配置的 WebAppLaunchParameters 对象。
*/
open func preload(config: WebAppLaunchParameters) {}
/**
启动 Mini App 并返回对应的视图控制器。
- Parameters:
- config: 包含 Mini App 配置的 WebAppLaunchParameters 对象。
- Returns: 表示 Mini App 的 IMiniApp 对象。
*/
open func launch(config: WebAppLaunchParameters) -> IMiniApp? { return nil }
/**
在测试模式下设置 Mini App 的代理。
- Parameters:
- appDelegate: 符合 IAppDelegate 协议的对象。
*/
open func setupInTestDelegate(appDelegate: IAppDelegate) {}
/**
获取当前 Mini App 的账户上下文。
- Returns: 表示账户上下文的 AccountContext 对象,如果不存在则返回 nil。
*/
open func getContext() -> AccountContext? {
return nil
}
}
IMiniApp
public protocol IMiniApp {
/**
请求关闭MiniApp。
- Parameters:
- forece: true,强制关闭miniapp。
- Returns: true,可以正常关闭, false,需要处理其他关闭确认,如需要返回子页面或者关闭弹窗确认。
*/
func requestDismiss(_ forece: Bool) -> Bool
}
IResourceProvider
public protocol IResourceProvider {
/**
判断当前是否为深色模式。
- Returns: 返回一个布尔值,指示当前是否为深色模式。
*/
func isDark() -> Bool
/**
根据指定的键获取对应的字符串。
- Parameters:
- key: 字符串的键。
- Returns: 返回对应的字符串。
*/
func getString(key: String) -> String
/**
根据指定的键和值列表获取格式化后的字符串。
- Parameters:
- key: 字符串的键。
- values: 值列表,用于替换字符串中的占位符。
- Returns: 返回格式化后的字符串。
*/
func getString(key: String, withValues values: [CVarArg]) -> String
/**
根据指定的键获取对应的颜色。
- Parameters:
- key: 颜色的键。
- Returns: 返回对应的颜色。
*/
func getColor(key: String) -> UIColor
/**
获取当前的用户界面样式。
- Returns: 返回当前的用户界面样式。
*/
func getUserInterfaceStyle() -> UIUserInterfaceStyle
}
IAppDelegate
public protocol IAppDelegate {
/**
生成二维码提供者,并返回一个导航控制器。
- Parameters:
- content: 二维码内容。
- completion: 生成二维码后的回调闭包,返回生成的二维码字符串。
- Returns: 返回一个导航控制器,用于二维码扫码功能。
*/
var qrcodeProvider: (String?, @escaping (String?) -> Void) -> UINavigationController? { get }
/**
自定义方法提供者。
- Parameters:
- methodName: 方法名称。
- params: 方法参数。
- completion: 方法执行后的回调闭包,返回执行结果。
*/
var customMethodProvider: (String, String?, @escaping (String?) -> Void) -> Void { get }
/**
附加操作提供者。
- Parameters:
- action: 操作名称。
- params: 操作参数。
*/
var attachActionProvider: (String?, String) -> Void { get }
/**
在应用内切换到新会话。
- Parameters:
- query: 查询字符串。
- types: 类型列表。
- Returns: 返回一个布尔值,指示是否成功切换到新会话。
*/
func switchInlineQuery(query: String, types: [String]) async -> Bool
/**
检查当前会话是否支持并授权发送消息功能。
- Returns: 返回一个布尔值,指示当前会话是否支持并授权发送消息功能。
*/
func checkPeerMessageAccess() async -> Bool
/**
请求当前会话授权发送消息功能。
- Returns: 返回一个布尔值,指示是否成功请求授权发送消息功能。
*/
func requestPeerMessageAccess() async -> Bool
/**
发送消息给当前会话。
- Parameters:
- content: 消息内容。
- Returns: 返回一个布尔值,指示是否成功发送消息。
*/
func sendMessageToPeer(content: String?) async -> Bool
/**
请求将手机号码发送给当前会话。
- Returns: 返回一个布尔值,指示是否成功请求发送手机号码给当前会话。
*/
func requestPhoneNumberToPeer() async -> Bool
/**
获取生物认证信息,包括 APP 证书授权、人脸识别、指纹识别等。
- Returns: 返回 BiometryInfo 对象,包含生物认证信息。
*/
func getBiometryInfo() async -> BiometryInfo?
/**
请求授权生物认证功能。
- Parameters:
- reason: 请求授权的原因。
- Returns: 返回 BiometryInfo 对象,包含授权后的生物认证信息。
*/
func requestBiometryAccess(reason: String?) async -> BiometryInfo?
/**
请求进行生物认证。
- Parameters:
- reason: 请求认证的原因。
- Returns: 返回一个布尔值和一个字符串元组,表示认证是否成功和认证生成的 Token 值。布尔值为 true 表示认证成功,字符串为 Token 值;布尔值为 false 表示认证失败,字符串为 nil。
*/
func requestBiometryAuth(reason: String?) async -> (Bool, String?)
/**
请求更新生物认证 Token。
- Parameters:
- token: 要更新的生物认证 Token。
- reason: 请求更新的原因。
- Returns: 返回一个布尔值和一个字符串元组,表示更新是否成功和更新后的 Token 值。布尔值为 true 表示更新成功,字符串为更新后的 Token 值;布尔值为 false 表示更新失败,字符串为 nil。
*/
func updateBiometryToken(token: String?, reason: String?) async -> (Bool, String?)
/**
打开生物认证设置界面。
*/
func openBiometrySettings() async -> Void
/**
分享 Mini App。
- Parameters:
- url: Mini App 的 URL。
*/
func shareWebApp(url: String) -> Void
}