Skip to content

配置

概述

NativePHP for Mobile 的设计使得大多数配置都在你的 Laravel 应用程序内部完成,无需打开 Xcode 或 Android Studio 手动更新配置文件。

本页面介绍你可以通过 Laravel 控制的关键配置点。

nativephp.php 配置文件

config/nativephp.php 配置文件包含许多有用的选项。

NativePHP 使用合理的默认值,并根据你计算机上构建和运行应用所需工具的默认安装做出多项假设。

你可以通过编辑 Laravel 项目中的 nativephp.php 配置文件来覆盖这些默认值,在许多情况下只需更改环境变量即可。

NATIVEPHP_APP_ID

你必须将应用 ID 设置为唯一值。常见做法是使用反向 DNS 风格的名称,例如 com.yourcompany.yourapp

你的应用 ID(也称为 Bundle Identifier)是 Android 和 iOS 平台上的关键标识。不同的应用 ID 被视为不同的应用。

它通常在多个服务中被引用,如 Apple Developer Center 和 Google Play Console。

因此,这不是你想经常更改的东西。

NATIVEPHP_APP_VERSION

NATIVEPHP_APP_VERSION 环境变量控制你的应用版本行为。

当你的应用编译时,NativePHP 首先将相关的 Laravel 文件复制到临时目录,压缩它们,然后将归档文件嵌入到原生应用程序中。

当你的应用启动时,它会检查嵌入的版本与之前安装的版本,以确定是否需要解压打包的 Laravel 应用程序。

如果版本匹配,应用将使用现有文件而不重新解压归档。

要强制你的应用程序始终安装最新版本的代码——这在开发过程中特别有用——将其设置为 DEBUG

dotenv
NATIVEPHP_APP_VERSION=DEBUG

请注意,这会使你的应用程序启动稍慢,因为每次加载时都必须解压 zip 文件。

但这确保了你可以在开发过程中快速迭代,同时为发布后的最终用户提供更快、更稳定的体验。

清理 env

配置文件中的 cleanup_env_keys 数组允许你指定在打包前应从 .env 文件中删除的键。这对于删除 API 密钥或其他敏感信息很有用。

清理 exclude_files

配置文件中的 cleanup_exclude_files 数组允许你指定在打包前应删除的文件和文件夹。这对于删除日志或其他不需要的临时文件很有用,可以避免增加下载包的大小。

权限

一般来说,应用商店不希望你的应用拥有不需要的权限(又称授权)。

默认情况下,所有可选权限都是禁用的。

你可以通过将相应权限的值更改为 true 来启用你打算使用的功能:

php
    'permissions' => [
        'biometric' => false,
        'camera' => false,
        'location' => false,
        'microphone' => false,
        'microphone_background' => false,
        'network_state' => true,
        'nfc' => false,
        'push_notifications' => false,
        'storage_read' => false,
        'storage_write' => false,
        'scanner' => false,
        'vibrate' => false,
    ],

对于 iOS,这将提供合理的默认描述。

自定义权限描述

对于 iOS,可以定义自定义权限描述。在大多数情况下,你需要提供应用需要某些权限的明确原因。你可以从配置文件中轻松完成:

php
    'permissions' => [
        'biometric' => '需要访问生物识别传感器以保护用户资源',
        //...
    ],

可用权限

  • biometric - 允许你的应用使用指纹或面部识别硬件(备用 PIN 码)来保护应用的某些部分。
  • camera - 允许你的应用请求访问设备的摄像头(如果存在)。拍照和录制视频需要此权限。请注意,用户可能拒绝访问,此时任何摄像头功能将不会执行任何操作。
  • nfc - 允许你的应用请求访问设备的 NFC 读取器(如果存在)。
  • push_notifications - 允许你的应用请求发送推送通知的权限。请注意,用户可能拒绝此权限,此时任何推送通知功能将不会执行任何操作。
  • location - 允许你的应用请求访问设备的 GPS 接收器(如果存在)。请注意,用户可能拒绝此权限,此时任何位置功能将不会执行任何操作。
  • vibrate - 在现代 Android 设备上,大多数触觉反馈都需要此权限。
  • storage_read - 授予你的应用从设备存储位置读取的权限。基本的应用文件操作不需要此权限。
  • storage_write - 允许你的应用写入设备存储。基本的应用文件操作不需要此权限。
  • microphone - 允许你的应用请求访问设备的麦克风(如果存在)。音频录制功能需要此权限。请注意,用户可能拒绝访问,此时任何麦克风功能将不会执行任何操作。
  • microphone_background - 允许你的应用在后台请求访问设备的麦克风(如果存在)。音频录制功能需要此权限。请注意,用户可能拒绝访问,此时任何麦克风功能将不会执行任何操作。
  • scanner - 允许你的应用扫描二维码和条形码。请注意,用户可能拒绝摄像头访问,此时任何扫描功能将不会执行任何操作。
  • network_state - 允许你的应用访问设备网络连接状态的信息。此权限默认启用,因为基本的网络状态检测通常需要它。

屏幕方向

NativePHP(从 v1.10.3 开始)允许用户通过配置文件为每个设备自定义特定的屏幕方向。配置允许对 iPad、iPhone 和 Android 设备进行细粒度设置。每个设备的选项如下所示。

注意:如果你想完全禁用 iPad 支持,只需将每个选项设置为 false

php
'orientation' => [
    'iphone' => [
        'portrait' => true,
        'upside_down' => false,
        'landscape_left' => false,
        'landscape_right' => false,
    ],
    'android' => [
        'portrait' => true,
        'upside_down' => false,
        'landscape_left' => false,
        'landscape_right' => false,
    ],
],

无论这些方向设置如何,如果你的应用支持 iPad,它将在所有方向上可用。

iPad 支持

使用 NativePHP,你的应用也可以在 iPad 上运行!如果你希望支持 iPad,只需将 ipad 配置选项设置为 true

php
'ipad' => true,

使用标准的 CSS 响应式设计原则,你可以让你的应用在所有屏幕尺寸上都表现出色。

一旦支持 iPad,永远支持 iPad

一旦你发布了支持 iPad 的应用,就无法撤销。如果你希望移除 iPad 支持,你需要更改 NATIVEPHP_APP_ID 并在新的 App Store 列表下发布应用。

基于 NativePHP 官方文档翻译