Skip to content

介绍

什么是插件?

插件使用原生功能扩展 NativePHP for Mobile。需要设备端 ML、蓝牙或自定义硬件集成?插件让你可以添加这些功能而无需 fork 核心包。

插件是一个 Composer 包,它捆绑了:

  • PHP 代码 — 你在 Laravel 中使用的 Facades、事件和服务提供者
  • 原生代码 — Swift (iOS) 和 Kotlin (Android) 实现
  • 清单 — 声明插件提供什么和需要什么

当你构建应用时,NativePHP 将已注册插件的原生代码编译到你的应用中。

为什么要使用插件?

NativePHP Mobile 中的所有原生功能都通过插件提供——包括相机、生物识别、推送通知等官方插件。这种架构意味着:

  • 官方插件 提供核心功能并作为参考实现
  • 社区插件 用新功能扩展平台
  • 你自己的插件 让你可以集成专有 SDK 或自定义原生代码

安装插件后,其原生功能就可以通过简单的 facade 在你的 PHP 代码中使用。

插件能做什么

插件可以完全访问原生平台功能:

  • 桥接函数 — 从 PHP 调用 Swift/Kotlin 代码并获取返回结果
  • 事件 — 从原生代码向你的 Livewire 组件分发事件
  • 权限 — 声明所需权限(相机、位置等)
  • 依赖项 — 通过 Gradle、CocoaPods 或 Swift Package Manager 包含原生库
  • 自定义仓库 — 使用私有 Maven 仓库用于企业 SDK
  • Android 组件 — 注册 Activities、Services、Receivers 和 Content Providers
  • 资源 — 捆绑 ML 模型、配置文件和其他资源
  • 生命周期钩子 — 在构建时运行代码以下载模型、验证配置等
  • 密钥 — 声明带有验证的必需环境变量

插件架构

插件遵循与 NativePHP 核心相同的模式:

php
use Vendor\MyPlugin\Facades\MyPlugin;

// 调用原生函数
MyPlugin::doSomething();

// 监听事件
#[OnNative(MyPlugin\Events\SomethingHappened::class)]
public function handleResult($data)
{
    // 处理它
}

原生代码在设备上运行,通过桥接与你的 PHP 通信,并将事件分发回你的 Livewire 组件。这与你已经在使用的模型相同。

开始使用

准备好构建自己的插件了吗?查看创建插件获取完整指南。

或者浏览 NativePHP 插件市场获取现成的插件和用于构建自己插件的开发工具包。

基于 NativePHP 官方文档翻译