自定义 ViewController
从 Capacitor 3.0 开始,您现在可以在应用中子类化 CAPBridgeViewController。大多数应用不需要此功能,但它为解决一些不常见的用例提供了受支持的机制。
何时创建子类
需要进行子类化的一些示例包括:在运行时覆盖 Capacitor 的配置值、更改 WKWebViewConfiguration 的属性、替换 Capacitor 使用的 WKWebView 的自定义子类、集成建议将代码添加到 viewDidLoad() 的第三方 SDK,或在原生视图出现在屏幕上之前对其进行操作。
如果您确实需要创建自定义子类,有几个步骤可以开始。
创建 MyViewController.swift
首先,通过打开 Xcode,右键点击 App 组(在 App target 下),从上下文菜单中选择 New File...,在窗口中选择 Cocoa Touch Class,在下一个屏幕中将 Subclass of: 设置为 UIViewController,然后保存文件,创建 MyViewController.swift 文件。

编辑 Main.storyboard
接下来,在项目导航器中选择 Main.storyboard 文件,选择 Bridge View Controller Scene 中的 Bridge View Controller,选择右侧的 Identity Inspector,然后将自定义类的名称更改为 MyViewController。

编辑 MyViewController.swift
最后,在项目导航器中选择 MyViewController.swift 文件并编辑它以导入 Capacitor 并更改父类:
import UIKit
import Capacitor
class MyViewController: CAPBridgeViewController {
// 额外代码
}
完成!
下一步
Xcode 在生成文件时应该已经为您创建了一个 viewDidLoad() 方法,但请查看 CAPBridgeViewController 中的内联文档,以找到您可能需要的 Capacitor 特定方法。任何标记为 open 的方法都明确暴露给子类进行重写。