:fk_user_agent 適配 OpenHarmony,User-Agent 獲取一鍵搞定)
Flutter 鴻蒙化實戰(zhàn)fk_user_agent 適配 OpenHarmony## 前言隨著鴻蒙生態(tài)的快速發(fā)展越來越多的 Flutter 應用需要適配 OpenHarmony 平臺。但生態(tài)早期大量常用三方庫只有 Android / iOS 實現(xiàn)鴻蒙側只能自己造輪子。為了解決這個問題CPF-Flutter 社區(qū)對一批高頻使用的 Flutter 三方庫做了 OpenHarmony 平臺適配統(tǒng)一托管在 GitCode 的CPF-Flutter 組織 下全部通過 TAG 版本隔離、配套門禁編譯驗證開箱即用。本篇是系列文章之一主角是fk_user_agent—— User-Agent 獲取插件。## fk_user_agent 是什么fk_user_agent原庫 2.1.0用于快速獲取應用的User-Agent是 WebView、HTTP 請求、埋點統(tǒng)計等場景常需要的容器標識符-FkUserAgent.userAgent完整 User-Agent 字符串-FkUserAgent.packageInfo返回一組版本/平臺信息systemVersion、applicationVersion等可用來拼接自定義 UA。鴻蒙版返回的 UA 會帶上 OpenHarmony 平臺特征便于服務端識別鴻蒙設備與環(huán)境。## 適配情況| Flutter 框架版本 | TAG 名稱 | 分支名 || — | — | — || 3.7 | 2.1.0-ohos-1.0.1 | master || 3.22 | 2.1.0-ohos-1.0.1 | master || 3.27 | 2.1.0-ohos-1.0.1 | master || 3.35 | 2.1.0-ohos-1.0.1 | master |已驗證環(huán)境3.35 為例Flutter 3.35.8-ohos-0.0.1SDK 6.0.1(21)DevEco Studio 6.0.1.260ROM 6.0.0.120 SP6。## 快速接入在 pubspec.yaml 中添加 git 依賴yamldependencies: fk_user_agent: git: url: https://gitcode.com/CPF-Flutter/fluttertpc_fk_user_agent.git # 按你的 Flutter 框架版本從上方映射表選擇對應 TAG ref: 2.1.0-ohos-1.0.1執(zhí)行bashflutter pub get## 使用示例### 獲取 User-Agentdartimport package:fk_user_agent/fk_user_agent.dart;final String ua await FkUserAgent.userAgent;print(ua);// 例如Flutter/3.35 (OpenHarmony 6.0.1; HarmonyOS 6.0) ...### 獲取版本/平臺信息dartfinal MapString, dynamic info await FkUserAgent.packageInfo;// info[systemVersion] —— 系統(tǒng)版本// info[applicationVersion] —— 應用版本### 完整示例給 WebView 設置 UAdartimport package:flutter/material.dart;import package:webview_flutter/webview_flutter.dart;import package:fk_user_agent/fk_user_agent.dart;class WebViewPage extends StatefulWidget { const WebViewPage({super.key}); override StateWebViewPage createState() _WebViewPageState();}class _WebViewPageState extends StateWebViewPage { override Widget build(BuildContext context) { return WebViewWidget( controller: WebViewController() ..setUserAgent(FkUserAgent.userAgent) ..loadRequest(Uri.parse(https://example.com)), ); }}## API 支持一覽| API | 說明 | ohos 支持 || — | — | — || userAgent | 獲取 User-Agent | yes || packageInfo | 獲取版本/平臺信息 | yes | [!TIP] ohos Support 為 yes 表示鴻蒙平臺支持該能力使用方式與 iOS / Android 保持一致。## 倉庫地址- OpenHarmony 適配倉庫https://gitcode.com/CPF-Flutter/fluttertpc_fk_user_agent- 使用問題反饋請到 CPF-Flutter 社區(qū) Issues 提交問題社區(qū)統(tǒng)一收集跟進本倉庫 Issues 區(qū)亦可。## 系列預告截至目前CPF-Flutter 社區(qū)已完成250 個Flutter 三方庫的 OpenHarmony 平臺適配覆蓋權限管理、UI 組件、設備信息、位置服務、媒體處理、網(wǎng)絡、支付等多個領域完整的適配清單含每個庫的版本映射表見-適配總覽文檔https://gitcode.com/CPF-Flutter/docs/blob/main/ThirdpartyLibrarites.md-倉庫組織https://gitcode.com/CPF-Flutter本系列后續(xù)會陸續(xù)挑選高頻庫展開講解比如支付寶支付tobias、JS 橋接flutter_jsbridge_plugin、鍵盤工具欄keyboard_actions、設備信息device_util等。如果你的 Flutter 應用正在計劃適配鴻蒙歡迎關注 CPF-Flutter 組織也歡迎參與共建。