# funibase **Repository Path**: PandoraMaze/funibase ## Basic Information - **Project Name**: funibase - **Description**: 基于Flutter工程,集成uni-app小程序模式的开发框架:funibase = Flutter + Uni + Base - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2021-08-11 - **Last Updated**: 2024-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: Framework, Flutter, uni-app, Android, IOS ## README # FUNIBASE ## Reviews 基于Flutter工程,集成uni-app小程序模式的开发框架:funibase = Flutter + Uni + Base #### P.S. 可自行扩展更多UNI-APP功能库,官方文档见 https://nativesupport.dcloud.net.cn/README ## Framework | PROJECT | TYPE | DESC | | :------ | :--- | :--- | | LIBX | Flutter Plugin | uni-app封装库 + 常用三方插件库 + 自定义插件库 | | UIKIT | Dart Package | 常用三方 + 自定义工具/UI库(纯Dart) | | APP | App | 主项目 | #### LIBX - pubspec.yaml ```yaml # First flutter.dev & fluttercommunity.dev Packages package_info_plus: ^1.3.0 device_info_plus: ^3.2.0 shared_preferences: ^2.0.11 path_provider: ^2.0.8 url_launcher: ^6.0.17 webview_flutter: ^3.0.0 image_picker: ^0.8.4+4 # Third permission_handler: ^8.3.0 open_file: ^3.2.1 fluttertoast: ^8.0.8 cached_network_image: ^3.2.0 ``` #### UIKIT - pubspec.yaml ```yaml # First dart.dev & flutter.dev & fluttercommunity.dev Packages intl: ^0.17.0 equatable: ^2.0.0 # Third Packages dio: ^4.0.4 dio_cookie_manager: ^2.0.0 cookie_jar: ^3.0.1 uuid: ^3.0.5 encrypt: ^5.0.1 flutter_easyloading: ^3.0.0 toggle_rotate: 1.0.1 ``` ## Usage #### LIBX Plugin ```dart // uni-app操作 // 初始化uni-Sdk LibNative.initUniApp() // 检查小程序是否存在 LibNative.isUniAppExists(String 小程序id) // 启动小程序(额外参数将被解析为{'extra': 'Json串'}) LibNative.startUniApp(String 小程序id, {Map 传递参数, Map 额外参数}) // 启动小程序wgt安装包(额外参数将被解析为{'extra': 'Json串'}) LibNative.startUniWgt(String 小程序id, String 安装包路径, {Map 传递参数, Map 额外参数}) // 关闭所有小程序 LibNative.closeUniApp() // 关闭指定小程序 LibNative.closeUniAppBy(String 小程序id) // 获取小程序本地路径 LibNative.getUniBasePath() // 获取指定小程序版本号 LibNative.getUniAppVersionCode(String 小程序id) // 获取指定小程序版本名 LibNative.getUniAppVersionName(String 小程序id) // 文件操作 // 打开Apk FileX.openApk(String filePath) // Uri操作 // 执行uri协议链接 Scheme.call(String uri) // 拨打电话,等同于 call('tel:114') Scheme.phone(String number) ``` #### UIKIT Package ```dart // UniApps 类 UniApps.loadRemote(String wgt下载地址, {String 小程序id, ProgressChanged 进度监听}) // 下载远程wgt包并加载 UniApps.remove(String 小程序id) // 移除本地小程序包 // StringExt 类,String 类扩展 'http://www.xxx.com/setup.apk'.urlName // 截取Url串末尾的文件名,输出 'setup.apk' '777'.intValue // 转Int,输出 777 '18612341234'.hideMiddle() // 隐藏字符串中间指定位数,并用相应的字符替换,默认4位*号,输出 186****1234 // ScreenExt 类,分辨率数值转化,num 类扩展 8.px // 转px 8.dp // 转dp 8.pt // 转pt // LayoutExt 类,Widget 类扩展 Row().margin({left, top, right, bottom}) // 外层嵌套 Container(),可设 margin Row().padding({left, top, right, bottom}) // 外层嵌套 Container(),可设 padding // 资源常量类 UiColors:通用颜色 UiShapes:常用组件,例如 div() Keys:数值常量 UiStirngs:字符常量 UiStyles:样式类组件 // 网络请求工具,Dio 封装 HttpCat.born({BaseOptions, HttpCfg 初始配置}) // 初始化 HttpCat.wake().reset({BaseOptions, HttpCfg}) // 重置 Dio 配置 HttpCat.wake().switchBaseUrl(String baseUrl) // 重置 BaseUrl HttpCat.wake().addHeader(Map header) // 添加 Header HttpCat.wake().get/post/patch/delete/put/download() // 各类型请求,返回 HttpResp 类,详见代码 // 图片资源加载工具 // 普通加载 ImgLoader.asset(String 资源名, {String 包名, String 根目录指定,默认'img', BoxFit fit模式, double width, douoble height, Color color, bool 是否渐入}) // 返回 AssetImage类 ImgLoader.assetProvider(String 资源名, {String 包名, String 根目录指定,默认'img'}) // 返回 ImageIcon类 ImgLoader.icon(String 资源名称) // 网络资源加载,Image.network() 封装 ImgLoader.url(String url) // File加载,Image.file() 封装 ImgLoader.fileIn(File file) // CachedNetworkImage() 封装,返回 Widget ImgLoader.widget() // 打开相机 ImgLoader.camera() // 打开相册 ImgLoader.gallery() // 日期工具 DateX.weekFirstDay() // 当周第一天日期 DateX.weekLastDay() // 当周最后一天日期 DateX.parse(String 日期字符串) // 字符串格式转 DataTime // 下载工具 Downloader.start(String 下载地址, String 保存地址, {ProgressChanged 进度监听}) // 主题工具 ThemeX.toDarkStatusBar() // 切换为暗模式状态栏 ThemeX.toLightStatusBar() // 切换为亮模式状态栏 // Toast弹窗 Tips.toast(String msg) // 普通模态加载框 Tips.loading() // 显示 Tips.disLoading() // 关闭 // 自定义加载框,返回 Widget Tips.modalLoding() // iOS样式对话框,showCupertinoDialog() 封装 Tips.confirm() // 拍照/相册图片选择器,iOS样式底部弹框 Tips.pickPhoto(Context context, {FilePicked 文件回调, COlor 取消按钮文字颜色}) // 时间选择器,iOS样式底部弹框 Tips.pickDateTime(Context context, {DateTime 默认选中, DateTime 起始时间, DateTime 终止时间, ValueChanged 选择变化监听}) // 字符串工具 StringX.isEmpty(String txt) // 是否为空(包含空串判断) StringX.isNotEmpty(String txt) // 是否不为空(包含空串判断) // 常用组件封装 InkBox:嵌套点击组件(包含波纹效果) LoadingCell:页面加载组件,封装 FutureBuilder,包含加载成功,失败,页空三态 TextFormInput:文本输入框,TextFormField 封装 TextFormInput.noFrame:文本输入框,无底框样式 TextFormInput.area:多行文本输入框 ``` ## Contact Email: bluesofy@qq.com