@fishjam-cloud/react-native-client

中文文档
0.31.1发布于 2026/10/22Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.2万

Fishjam 的本地客户端库

中文使用文档
文档目录10 节
  1. 安装
  2. Android VoIP 设置
  3. 博览
  4. 调用超时
  5. 裸体反应原生
  6. 用 WebRTC 叉进行本地开发
  7. 设置
  8. 发展 工作流量
  9. 更新子模块
  10. 帮助更改叉

@fishjam-cloud/反应-本地客户

Fishjam的原始客户端库.

安装

npm install @fishjam-cloud/react-native-client
# or
yarn add @fishjam-cloud/react-native-client

Android VoIP 设置

对Android的呼叫通过Firebase Cloud Massaging传送 所以Firebase就是 只有在你选择加入时才进入你的建筑 iOS使用PushKit/APN,不需要这些.

博览

启用配置插件中的 VoIP , 并点出您的 Expo google-services.json数字 :

{
  "expo": {
    "android": { "googleServicesFile": "./google-services.json" },
    "plugins": [["@fishjam-cloud/react-native-client", { "android": { "enableVoIP": true } }]]
  }
}

其余的都是预建的. android.googleServicesFile 让博览会添加 com.google.gms:google-services 类路径,应用 Gradle 插件,并复制 文件输入 android/app/一边说一边 enableVoIP 正在运行是预建错误.

调用超时

插件可以设置本地超时秒 。 未回复的呼叫默认值 至 45 秒,未连接的调用默认为 60 秒 解答-实现握手默认为10秒:

{
  "expo": {
    "plugins": [
      [
        "@fishjam-cloud/react-native-client",
        {
          "android": { "enableVoIP": true },
          "voip": {
            "incomingCallTimeout": 45,
            "outgoingCallTimeout": 60,
            "fulfillAnswerCallTimeout": 10
          }
        }
      ]
    ]
  }
}

所有超时属性都是可选的,必须是正限数. 说吧 属性以使用其本地默认值.

裸体反应原生

配置插件不运行,则 google-services 牵引插件 必须适用于 应用程序 模块 —— 库不能为您服务。 跟着 Firebase Android 设置指南 应添加 google-services.json 并应用插件.

您还必须用手表声明配置插件会注入什么 AndroidManifest.xml - 那个 MANAGE_OWN_CALLS, (中文(简体) ), POST_NOTIFICATIONS, (中文(简体) ), USE_FULL_SCREEN_INTENT 财务报告和审定财务报表 VIBRATE 权限 IncomingCallActivity, (中文(简体) ), 页:1 EndCallNotificationReceiver,则 PushNotificationService 联合国 com.google.firebase.MESSAGING_EVENT 意图过滤器。 见 plugin/src/withFishjamVoIPAndroid.ts 准确的条目.

使用赤裸反射原生时手动设定超时元数据 :

<application>
  <meta-data android:name="VoIPIncomingCallTimeout" android:value="45" />
  <meta-data android:name="VoIPOutgoingCallTimeout" android:value="60" />
  <meta-data android:name="VoIPFulfillAnswerTimeout" android:value="10" />
</application>

对于iOS, 添加与数字相同的超时值 Info.plist 键 : VoIPIncomingCallTimeout, (中文(简体) ), VoIPOutgoingCallTimeout,以及 VoIPFulfillAnswerTimeout。 。 。 .

用 WebRTC 叉进行本地开发

此软件包取决于 @fishjam-cloud/react-native-webrtc,叉线 react-native-webrtc叉子住在这里 其自己的 GitHub 重播 并作为一个 git 子模块包含在这个单相中 packages/react-native-webrtc/被编织成线条 不需要手动链接 .

设置

用子模块克隆寄存器 :

git clone --recurse-submodules https://github.com/fishjam-cloud/web-client-sdk.git

如果您已经克隆了没有 --recurse-submodules,从回波内部初始化子模块:

git submodule update --init --recursive

然后从 repo 根安装依赖性 :

yarn install

雅恩决定 @fishjam-cloud/react-native-webrtc 到工作区 packages/react-native-webrtc/,而React Industrial自動連接会通过同义软件包自动取取出原生iOS和Android代码.

发展 工作流量

更改类型怎么办
JS/TS 变化 以叉为单位保存 ~ 大都会热重装自动
本地代码更改 (iOS/Android) (英语)保存 ~ 重建应用程序( E)yarn ios 或者说 yarn android(中文(简体) )

没有 pod install 或者说 yarn install 在本地代码更改后需要——只需重建应用程序.

更新子模块

子模块跟踪叉 master 树枝,但被固定在一个特定的承诺。 更新最新上游:

git submodule update --remote packages/react-native-webrtc
git add packages/react-native-webrtc
git commit -m "Bump react-native-webrtc submodule"

检查特定标签或承诺:

git -C packages/react-native-webrtc fetch
git -C packages/react-native-webrtc checkout <tag-or-sha>
git add packages/react-native-webrtc
git commit -m "Pin react-native-webrtc to <tag-or-sha>"

当子模块跨越一个版本边界时, 也会更新 peerDependencies.@fishjam-cloud/react-native-webrtc 此软件包中 package.json 因此,外部消费者看到正确的范围.

帮助更改叉

内部变化 packages/react-native-webrtc/ 属于叉子的,不是这个。 将他们推向上游:

cd packages/react-native-webrtc
git checkout -b your-feature-branch
# commit your changes
git push origin your-feature-branch
# open a PR against fishjam-cloud/fishjam-react-native-webrtc

一旦上游的PR被合并,就将子模块sha撞到这里(见上文"更新子模块").

版本与发布记录

@fishjam-cloud/react-native-client 共发布 61 个版本,首次发布于 2024/09/05;过去 12 个月发布了 30 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.31.1latest2026/10/2223 天前
0.31.02026/09/301 个月前
0.30.22026/09/191 个月前
0.30.2-rc.0rc2026/09/142 个月前
0.30.12026/09/102 个月前
0.30.02026/08/262 个月前

关于 @fishjam-cloud/react-native-client 的常见问题

@fishjam-cloud/react-native-client 是什么?

Fishjam 的本地客户端库

如何安装 @fishjam-cloud/react-native-client?

在项目目录运行 npm install @fishjam-cloud/react-native-client,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:expo(*)、react(*)、react-native(*)、react-native-get-random-values(1.11.0)、@fishjam-cloud/react-native-webrtc(0.31.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fishjam-cloud/react-native-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fishjam-cloud/react-native-client 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fishjam-cloud/react-native-client 可以商用吗?

@fishjam-cloud/react-native-client 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@fishjam-cloud/react-native-client 的下载量有多少?

根据 npm 官方下载统计,@fishjam-cloud/react-native-client 在 2026/10/15 – 2026/11/13 这 30 天内被下载 11,501 次,日均约 383 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fishjam-cloud/react-native-client 还在维护吗?

最新版本 0.31.1 发布于 2026/10/22(23 天前);至今共发布 61 个版本,其中过去 12 个月发布了 30 个;首次发布于 2024/09/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。