SuperAPI AI 工具集

controller-native

前端与建站

查看项目

更新于 10-16 05:02

技能介绍

用途:把 Cartridge Controller 接入原生与移动应用,适用于移动游戏或需在 iOS、Android、React Native、C/C++ 中以 Controller.c 原生绑定运行,或把已有 Web 应用通过 Capacitor 打包上架的场合。

主要能力与接入方式:提供三种概念。SessionConnector 面向 Web/Capacitor 应用,使用基于浏览器的鉴权;SessionAccount 面向使用 Controller.c FFI 绑定的原生应用;ControllerAccount 为无头/服务端模式,配合自定义签名密钥。

使用方式:Web/Capacitor 场景从 @cartridge/connector 导入 SessionConnector,配置 policies、rpc、chainId、redirectUrl、disconnectRedirectUrl 后实例化。鉴权流程为:应用生成本地密钥对,用户在浏览器中通过深度链接完成鉴权,浏览器带会话凭证回调,应用本地签名交易;回调可用 Capacitor 的 App.addListener("appUrlOpen") 配合 sessionConnector.handleCallback 处理。React Native 需 Node.js >= 20,使用 TurboModules 与 Controller.c 绑定,先执行 pnpm install、pnpm exec expo prebuild,再经 SessionAccount.createFromSubscribe 创建会话并调用 executeFromOutside 执行交易。iOS 需 Xcode 15+,使用 UniFFI 生成的 Swift 绑定,通过 Owner.init 与 ControllerAccount.newHeadless 创建无头控制器后 execute。Android 使用 UniFFI 生成的 Kotlin 绑定(需 Rust 工具链构建原生库),通过 ownerInit 与 controllerNewHeadless 创建并 execute。

配置要点:Capacitor 的 iOS 需在 capacitor.config.ts 设置 App.launchUrl;Android 需在 AndroidManifest.xml 中为 MainActivity 添加带 scheme 的 intent-filter;原生 iOS 启用 passkey 登录需在 @cartridge/presets 配置 Apple App Site Association,将 TEAMID 替换为你的 Apple Developer Team ID。

限制:Android webview 对 WebAuthn 支持有限;社交登录在 webview 中可能不可用,原生建议优先使用 passkey;EVM 钱包仅限桌面端,移动浏览器会自动隐藏;passkey 在原生 iOS 上需 AASA 配置。安全上切勿提交私钥,应使用环境变量、安全存储 API 或密钥管理器。

其余细节(如具体收费、价格、平台与版本兼容性等)暂未提供。