使用 React Native BugBubble 实现闪电般快速的应用内调试

发布: (2026年1月5日 GMT+8 15:05)
3 min read
原文: Dev.to

Source: Dev.to

概述

@lokal-dev/react-native-bugbubble 提供对网络请求、WebSocket 事件、控制台日志和分析数据的实时可视化,直接在你的 React Native 应用内部。它是一个轻量级、即插即用的调试器,无需原生配置——纯 JavaScript/TypeScript 实现。

演示

一个漂浮的调试气泡可以拖动位置,点击后打开调试 UI。它默认即可追踪网络、WebSocket、控制台和分析事件。

安装

yarn add @lokal-dev/react-native-bugbubble
# or
npm install @lokal-dev/react-native-bugbubble

用法

在应用根组件中添加 provider,使其只挂载一次:

import { BugBubbleProvider } from '@components/global/BugBubbleProvider';

export default function App() {
  return (
    <>
      {/* Your app components go here */}
      <BugBubbleProvider />
    </>
  );
}

配置

你可以调节日志上限、气泡位置以及追踪开关:

import { BugBubble } from '@lokal-dev/react-native-bugbubble';

const IS_BUG_BUBBLE_ENABLED = Keys.ENV !== 'production';

/**
 * BugBubble configuration options
 */
const bugBubbleConfig = {
  maxLogs: 100, // Maximum number of logs to store
  floatingButtonPosition: {
    top: 150,
    right: 30,
  },
  trackingOptions: {
    enabled: true,
    options: {
      console: true,   // Track console logs
      network: true,   // Track network requests
      websocket: true, // Track WebSocket connections
      analytics: true, // Track analytics events
    },
  },
  // Optional: hide unwanted URLs
  ignoreUrls: [/symbolicate/, /generate_204/, /clients3\.google\.com/],
};

export const BugBubbleProvider = () => {
  if (!IS_BUG_BUBBLE_ENABLED) {
    return null;
  }

  return <BugBubble config={bugBubbleConfig} />;
};

注意事项

  • 配置在组件挂载时读取;若要生效更改,请重新挂载组件。
  • 禁用某种日志类型会隐藏对应标签页并停止相应的拦截器。

自定义日志

如果需要手动记录自定义事件:

import { BugBubbleLogger } from '@lokal-dev/react-native-bugbubble';

BugBubbleLogger.logAnalytics('user_login', { method: 'email' });
BugBubbleLogger.logNetwork('POST', 'https://api.example.com/users', 201);
BugBubbleLogger.logWebSocket('message', 'wss://api.example.com/ws', { ping: true });
BugBubbleLogger.logConsole('warn', 'Deprecated API used');

使用场景

  • 需要在 QA 包中检查 API 流量而不依赖远程工具。
  • 调查不稳定的 WebSocket 连接或 CI 环境下的控制台噪声。
  • 作为更重型远程调试器的轻量替代方案。

进一步阅读

完整的 API 细节和更多示例,请参阅 GitHub 上的项目仓库:
react-native-bugbubble

Back to Blog

相关文章

阅读更多 »