Capacitor iOS API
Capacitor iOS 是为 iOS 上的 Capacitor 应用提供动力的原生运行时。
Bridge
iOS bridge 是 Capacitor iOS 库的核心。bridge 上有几个可用的属性和方法,提供信息或改变行为。
当向 Capacitor 注册后,插件有一个对 bridge 的弱引用:
self.bridge?
如果您的函数需要 bridge,您可以使用 guard 来解包它并提前退出:
guard let bridge = self.bridge else { return }
viewController
var viewController: UIViewController? { get }
此属性包含 Capacitor 的主视图控制器,可用于在应用之上呈现原生视图。
示例:
DispatchQueue.main.async {
self.bridge?.viewController.present(ourCustomViewController, animated: true, completion: nil)
}
在 iPad 设备上,可以呈现弹出视图:
self.setCenteredPopover(ourCustomViewController)
self.bridge.viewController.present(ourCustomViewController, animated: true, completion: nil)
config
var config: InstanceConfiguration { get }
此属性包含 Capacitor 运行时已知的配置对象。
triggerJSEvent(...)
func triggerJSEvent(eventName: String, target: String)
func triggerJSEvent(eventName: String, target: String, data: String)
在 JavaScript 的 EventTarget(如 window 或 document)上触发事件。如果可能,建议使用插件事件替代。
示例:
bridge.triggerJSEvent(eventName: "myCustomEvent", target: "window")
bridge.triggerJSEvent(eventName: "myCustomEvent", target: "document", data: "{ 'dataKey': 'dataValue' }")
注意:data 必须是一个序列化的 JSON 字符串值。
localURL(...)
func localURL(fromWebURL webURL: URL?) -> URL?
将 Web View 中的 URL 转换为原生 iOS 的文件 URL。
Web View 可能处理几种不同类型的 URL:
res://(Web 资产的快捷 scheme)file://(本地设备上文件的完全限定 URL)
portablePath(...)
func portablePath(fromLocalURL localURL: URL?) -> URL?
将原生 iOS 的文件 URL 转换为在 Web View 中加载的 URL。
传递数据
关于如何处理在环境之间传递的数据的说明可以在此处找到。
保存 CAPPluginCall
关于持久化插件调用以用于异步或重复操作的说明可以在此处找到。