Capacitor iOS API
Capacitor iOS は、Capacitor アプリを iOS 上で動作させるためのネイティブランタイムです。
Bridge
iOS ブリッジは、Capacitor iOS ライブラリの心臓部である。ブリッジには、情報を提供したり動作を変更したりするプロパティやメソッドがあります。
Capacitor に登録されると、プラグインはブリッジへの弱い参照を持ちます:
self.bridge?
あなたのメソッドがブリッジが必要な場合、Guard を使ってブリッジを確認して、ない場合は return することができます:
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 端末では、Popover を表示することができます。
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)
window
や document
などの JavaScript の EventTarget
でイベントを発生させます。可能であれば、代わりに Plugin Events を使用することをお勧めします。
例:
bridge.triggerJSEvent(eventName: "myCustomEvent", target: "window")
bridge.triggerJSEvent(eventName: "myCustomEvent", target: "document", data: "{ 'dataKey': 'dataValue' }")
Note: data
must be a serialized JSON string value.
localURL(...)
func localURL(fromWebURL webURL: URL?) -> URL?
WebView からの URL をネイティブ iOS 用のファイル URL に変換します。
WebView では、複数の異なるタイプの URL を扱うことがあります。
res://
(ウェブアセットへのショートカットスキーム)file://
(ローカルデバイス上のファイルへの完全修飾 URL)
portablePath(...)
func portablePath(fromLocalURL localURL: URL?) -> URL?
ネイティブ iOS 用のファイル URL を、Web ビューで読み込むための URL に変換します。
データの受け渡し
環境間で渡されるデータの扱い方については、こちら を参照してください。
CAPPluginCall の保存
非同期の操作や繰り返し行われる操作のためのプラグインの呼び出しを持続させるための注意点はこちら にあります。