Skip to content

原生函数 ​

我们的自定义 PHP 扩展实现了与每个平台的紧密集成,提供了一致且高性能的抽象,让你专注于构建应用。在一个平台上开发,为两个平台构建。

原生设备函数直接从你的 PHP 代码调用,让你可以访问平台特定的功能,同时保持 Laravel 开发的生产力和熟悉度。

这些函数通过不断增长的类列表从你的 PHP 代码中调用。这些类也被包装在 Laravel Facades 中,以便于访问和测试,例如:

php
Native\Mobile\Facades\Biometrics
Native\Mobile\Facades\Browser
Native\Mobile\Facades\Camera

每个都在我们的 插件 部分中介绍。

从任何地方运行 ​

我们所有支持的 API 都通过 PHP 调用。这意味着 NativePHP for Mobile 不依赖于 Web 视图来运行,最终我们将完全支持不使用 Web 视图作为渲染 UI 的主要工具的应用。尽管这将是可选的,所以你有完全的选择自由,甚至可以构建完全混合的解决方案。

当使用 Web 视图和 JavaScript 时,你也可以使用我们方便的 Native 库轻松地从 JavaScript 与原生函数交互。

如果你正在使用 SPA 框架(如 Vue 或 React)构建应用程序,这特别有用,因为你可以简单地导入所需的函数并将大量工作移到 UI 的响应式部分。

安装插件 ​

要使用 Native JavaScript 库,你必须在 package.json 文件中安装插件。将以下部分添加到 JSON 中:

js
{
    "dependencies": {
        ...
    },
    "imports": { // [tl! focus:start] 
        "#nativephp": "./vendor/nativephp/mobile/resources/dist/native.js"
    } // [tl! focus:end]
}

运行 npm install,然后在你的 JavaScript 中,只需从插件导入相关函数:

js
import { on, off, Microphone, Events } from '#nativephp';
import { onMounted, onUnmounted } from 'vue';

const buttonClicked = () => {
    Microphone.record();
};

const handleRecordingFinished = () => {
    // 更新 UI
};

onMounted(() => {
    on(Events.Microphone.MicrophoneRecorded, handleRecordingFinished);
});

onUnmounted(() => {
    off(Events.Microphone.MicrophoneRecorded, handleRecordingFinished);
});

该库是完全类型化的,因此你的 IDE 应该能够获取可用的属性和方法,为你提供内联提示和代码补全支持。

在大多数情况下,JavaScript API 与 PHP API 相同。任何关键差异都会在我们的 API 文档中注明。

这种方法在底层使用 PHP 接口,意味着两个实现保持同步。所以你永远不需要担心 API 是否只在一个地方可用;它们总是在你需要的任何地方都可用。

发现了 bug?

社区支持可通过 [Discord]() 和 GitHub Issues 获得。

基于 NativePHP 官方文档翻译