跳到主要内容
版本:v8

自定义 ViewController

自 Capacitor 3.0 起,您可以在应用程序中创建 CAPBridgeViewController 的子类。大多数应用程序不需要此功能,但它为处理某些特定场景提供了一种受支持的机制。

何时需要创建子类

以下是一些需要创建子类的典型场景:在运行时覆盖 Capacitor 的配置值、修改 WKWebViewConfiguration 的属性、为 Capacitor 替换自定义的 WKWebView 子类、集成建议将代码添加到 viewDidLoad() 的第三方 SDK、在原生视图显示到屏幕前对其进行操作,或者注册自定义插件

如果您确实需要创建自定义子类,可以按照以下几个步骤开始。

创建 MyViewController.swift

首先,通过打开 Xcode 创建 MyViewController.swift 文件:右键单击 App 组(位于 App 目标下),从上下文菜单中选择 New File...,在弹出的窗口中选择 Cocoa Touch Class,在下一个屏幕中将 Subclass of: 设置为 UIViewController,然后保存文件。

在 Xcode 中新建 ViewController 在 Xcode 中命名 ViewController

编辑 Main.storyboard

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

在 Xcode 中编辑 Storyboard

编辑 MyViewController.swift

最后,在项目导航器中选择 MyViewController.swift 文件,编辑它以导入 Capacitor 并更改父类:

import UIKit
import Capacitor

class MyViewController: CAPBridgeViewController {
// 自定义代码
}

完成!

后续步骤

Xcode 在生成文件时应该已经为您创建了 viewDidLoad() 方法,但请仔细阅读 CAPBridgeViewController 中的内联文档,以找到您可能需要使用的 Capacitor 特定方法。任何标记为 open 的方法都明确允许子类进行重写。