日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开发了个 Flipper 调试工具的 Flutter 版本 SDK,让 Flutter 应用调试起来更容易

發(fā)布時間:2025/4/5 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发了个 Flipper 调试工具的 Flutter 版本 SDK,让 Flutter 应用调试起来更容易 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近一直在持續(xù)的學習 Flutter,但一直沒有發(fā)現(xiàn)有好用的網(wǎng)絡調試工具,也不想太想使用 Charles 這個工具,后來發(fā)現(xiàn)了Facebook Flipper 這個工具,所以花了幾天時間做了個 Flutter 版的 Flipper SDK。期間碰到了一些問題但 Flipper 項目的人迅速的幫忙。

這個庫可以讓你能夠在 Flipper 上查看你的 Flutter 應用的網(wǎng)絡請求及 Preferences 數(shù)據(jù),相比之前我之前使用 print 來輸出請求數(shù)據(jù)來說,實在是方便了好多,如果你也在用 Flutter 開發(fā)你的應用,不妨來試一下吧。

特性

  • Network inspector

  • Shared preferences (and UserDefaults) inspector

集成到你的項目

必備條件

開始之前確保你已安裝:

  • 已安裝 Flipper Desktop

安裝

添加以下內容到包的 pubspec.yaml 文件中:

dependencies:flutter_flipperkit: ^0.0.2

根據(jù)示例更改項目的 ios/Podfile 文件:

Flipper 目前需要的 platform 為 8.0 +source 'https://github.com/facebook/flipper.git' +source 'https://github.com/CocoaPods/Specs' # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '9.0'

根據(jù)示例更改項目的 android/app/build.gradle 文件:

Flipper 目前需要的 sdkVersion 為 28 android { - compileSdkVersion 27 + compileSdkVersion 28defaultConfig { - targetSdkVersion 27 + targetSdkVersion 28} }

您可以通過命令行安裝軟件包:

$ flutter packages get

快速集成

添加下列代碼到 lib/main.dart 文件:

import 'package:flutter_flipperkit/flutter_flipperkit.dart';void main() {FlipperClient flipperClient = FlipperClient.getDefault();// 添加網(wǎng)絡插件flipperClient.addPlugin(new FlipperNetworkPlugin());// 添加 Preferences 插件flipperClient.addPlugin(new FlipperSharedPreferencesPlugin());flipperClient.start();runApp(MyApp()); }

Dio 集成示例:

import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter_flipperkit/flutter_flipperkit.dart'; import 'package:uuid/uuid.dart';class DioClient {Dio _http;FlipperNetworkPlugin _flipperNetworkPlugin;DioClient() {_flipperNetworkPlugin = FlipperClient.getDefault().getPlugin(FlipperNetworkPlugin.ID);Options options = new Options(connectTimeout: 5000,receiveTimeout: 3000,headers: {"Accept": "application/json","Content-Type": "application/json"},responseType: ResponseType.JSON,);this._http = new Dio(options);// 在攔截器中添加和 Flipper 通訊的代碼this._http.interceptor.request.onSend = (Options options) async {// 發(fā)送請求數(shù)據(jù)到 Flipperthis._reportRequest(options);return options;};this._http.interceptor.response.onSuccess = (Response response) {// 發(fā)送響應數(shù)據(jù)到 Flipperthis._reportResponse(response);return response;};}Dio get http {return _http;}void _reportRequest(Options options) {String requestId = new Uuid().v4();options.extra.putIfAbsent("requestId", () => requestId);RequestInfo requestInfo = new RequestInfo(requestId: requestId,timeStamp: new DateTime.now().millisecondsSinceEpoch,uri: '${options.baseUrl}${options.path}',headers: options.headers,method: options.method,body: options.data,);_flipperNetworkPlugin.reportRequest(requestInfo);}void _reportResponse(Response response) {Map<String, dynamic> headers = new Map();for (var key in []..addAll(HttpHeaders.entityHeaders)..addAll(HttpHeaders.requestHeaders)..addAll(HttpHeaders.responseHeaders)) {var value = response.headers.value(key);if (value != null && value.isNotEmpty) {headers.putIfAbsent(key, () => value);}}String requestId = response.request.extra['requestId'];ResponseInfo responseInfo = new ResponseInfo(requestId: requestId,timeStamp: new DateTime.now().millisecondsSinceEpoch,statusCode: response.statusCode,headers: headers,body: response.data,);_flipperNetworkPlugin.reportResponse(responseInfo);} }

Dio 使用示例

new DioClient().http.get('https://www.v2ex.com/api/topics/hot.json');

運行程序

這時,集成已經(jīng)完成,啟用應用后可在 Flipper Desktop 上實時看到你的網(wǎng)絡請求了

$ flutter run

已知問題

  • Flipper Desktop 中文亂碼,但已解決并提交 PR 給官方,暫時可以使用我修改的版本 https://github.com/lijy91/fli...
  • 暫不支持 iOS 真機

探討

如果您對此項目有任何建議或疑問,可以通過 Telegram 或我的微信進行討論。

相關鏈接

  • https://github.com/blankapp/f...
  • https://github.com/facebook/f...

總結

以上是生活随笔為你收集整理的开发了个 Flipper 调试工具的 Flutter 版本 SDK,让 Flutter 应用调试起来更容易的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。