uniapp 窗口小工具、桌面小部件、微件 Ba-AppWidget

简介(下载地址

Ba-AppWidget 是一款窗口小工具(桌面小部件、微件)插件,默认为音乐播放器的样式,有其他界面需要,可联系作者定制。

  • 支持点击事件监听
  • 支持动态更改页面内容
  • 支持设置小工具的预览图片
  • 支持自定义样式

截图展示

在这里插入图片描述

使用方法

script 中引入组件

	const appWidget = uni.requireNativePlugin('Ba-AppWidget')

script 中调用(示例参考,可根据自己业务和调用方法自行修改)

	const appWidget = uni.requireNativePlugin('Ba-AppWidget')
		export default {
			data() {
					return {
						msgList: [],
						textColor1: "#FF0000",
						contents: [{
							text1: "text11",
							text2: "text21",
							imgUrl1: "http://www.lihuisem.com/mwj/zb_users/upload/2021/28/1611837327969_1.jpeg"
						}, {
							text1: "text12",
							text2: "text22",
							imgUrl1: "http://www.lihuisem.com/mwj/zb_users/upload/2021/28/1611837327969_5.jpeg"
						}],
						index: 0
					}
				},
				methods: {
					init() { //初始化配置,使用默认配置可以不调用
						appWidget.init({
						        isTest: true,//仅用于测试效果
								textColor1: this.textColor1,
								text1: "text11",
								text2: "text21",
								imgUrl1: "http://www.lihuisem.com/mwj/zb_users/upload/2021/28/1611837327969_1.jpeg"
							},
							res => {
								console.log(res);
								uni.showToast({
									title: res.msg,
									icon: "none",
									duration: 3000
								})
			
							});
					},
					requestPin() { //添加到桌面,也可以通过桌面的方式添加
						let that = this;
						appWidget.requestPin(
							res => {
								console.log(res);
								that.msgList.unshift(JSON.stringify(res))
								uni.showToast({
									title: res.msg,
									icon: "none",
									duration: 3000
								})
					
							});
					},
					subClick() { //监听点击事件
						let that = this;
						appWidget.subClick(
							res => {
								console.log(res);
								if (res.data) {
									if(res.data.id){//根据id判断点击的事哪个按钮
										
									}
									that.updateAW();//更新页面内容
									that.msgList.unshift(JSON.stringify(res))
								}
								uni.showToast({
									title: res.msg,
									icon: "none",
									duration: 3000
								})
			
							});
					},
					updateAW() {//更新内容
						let that = this;
			
						if (this.index == 0) {
							this.index = 1;
						} else {
							this.index = 0;
						}
			
						let content = this.contents[this.index];
						appWidget.updateAW(content,
							res => {
								console.log(res);
								if (res.data) {
									that.msgList.unshift(JSON.stringify(res))
								}
								uni.showToast({
									title: res.msg,
									icon: "none",
									duration: 3000
								})
			
							});
					},
				}
			}

api 列表

方法名说明
init初始化配置,使用默认配置可以不调用
requestPin添加小工具到桌面
subClick监听小工具的点击事件
updateAW更新小工具的内容

init 方法参数

初始化配置,使用默认配置可以不调用

属性名类型必填默认值说明
text1Stringfalse‘’文本1的内容
text2Stringfalse‘’文本2的内容
textColor1Stringfalse‘#181818’文本1颜色
textColor2Stringfalse‘#666866’文本2颜色
textSize1Numberfalse14文本1的字体大小,单位dp
textSize2Numberfalse12文本2的字体大小,单位dp
btnIcon1Stringfalse‘’按钮1的图标,原生配置地址,见原生图标配置说明
btnIcon2Stringfalse‘’按钮2的图标,同上
btnIcon3Stringfalse‘’按钮3的图标,同上
btnIcon4Stringfalse‘’按钮4的图标,同上
btnIcon5Stringfalse‘’按钮5的图标,同上
imgUrl1Stringfalse‘’图片1,网络地址

updateAW 方法参数

更新小工具的内容

属性名类型必填默认值说明
text1Stringfalse‘’文本1的内容
text2Stringfalse‘’文本2的内容
textColor1Stringfalse‘#181818’文本1颜色
textColor2Stringfalse‘#666866’文本2颜色
textSize1Numberfalse14文本1的字体大小,单位dp
textSize2Numberfalse12文本2的字体大小,单位dp
btnIcon1Stringfalse‘’按钮1的图标,原生配置地址,见原生图标配置说明
btnIcon2Stringfalse‘’按钮2的图标,同上
btnIcon3Stringfalse‘’按钮3的图标,同上
btnIcon4Stringfalse‘’按钮4的图标,同上
btnIcon5Stringfalse‘’按钮5的图标,同上
imgUrl1Stringfalse‘’图片1,网络地址

原生图标配置

注意:配置更改后,需要重新制作基座才生效,建议提前配置。

  • 按钮图标:建议必填,不填使用默认图标,在项目的 “nativeplugins\Ba-AppWidget\android\res\drawable” 目录下(没有就新建),添加图标,然后在init或updateAW方法设置,对应的参数传图标的名称即可(如,图标文件为“ba_aw_ic_pause.png”,那参数的值为“ba_aw_ic_pause”)
  • 小工具的预览图片:建议必填,不填使用默认图标,在项目的 “nativeplugins\Ba-AppWidget\android\res\drawable” 目录下(没有就新建),添加名称为“ba_appwidget_preview.png”的图标,文件名必须一致

在这里插入图片描述

系列插件

图片选择插件 Ba-MediaPicker文档

图片编辑插件 Ba-ImageEditor文档

文件选择插件 Ba-FilePicker文档

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify文档

应用未读角标插件 Ba-Shortcut-Badge文档

应用开机自启插件 Ba-Autoboot文档

扫码原生插件(毫秒级、支持多码)Ba-Scanner-G文档

扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner文档

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar文档

原生sqlite本地数据库管理 Ba-Sqlite文档

安卓保活插件(采用多种主流技术) Ba-KeepAlive文档

安卓快捷方式(桌面长按app图标) Ba-Shortcut文档

自定义图片水印(任意位置) Ba-Watermark文档

最接近微信的图片压缩插件 Ba-ImageCompressor文档

视频压缩、视频剪辑插件 Ba-VideoCompressor文档

动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon文档

原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast文档

图片涂鸦、画笔 Ba-ImagePaint文档

pdf阅读(手势缩放、显示页数) Ba-Pdf文档

声音提示、震动提示、语音播报 Ba-Beep文档

websocket原生服务(自动重连、心跳检测) Ba-Websocket文档

短信监听(验证码) Ba-Sms文档

智能安装(自动升级) Ba-SmartUpgrade文档

监听系统广播、自定义广播 Ba-Broadcast文档

监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener文档

全局置灰、哀悼置灰(可动态、同时支持nvue、vue) Ba-Gray文档

获取设备唯一标识(OAID、AAID、IMEI等) Ba-IdCode文档

实时定位(系统、后台运行、支持息屏)插件 Ba-Location文档

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接入 umi3 和接入其他 React 应用一样,只需要在主应用中安装 `@umijs/plugin-qiankun` 插件,并在子应用中使用 `qiankun` 的 `registerMicroApps` 方法注册子应用。 具体步骤如下: 1. 在主应用中安装 `@umijs/plugin-qiankun` 插件: ```bash yarn add @umijs/plugin-qiankun -D ``` 2. 在主应用中的 `.umirc.ts` 或 `config/config.ts` 文件中配置 `qiankun` 插件: ```typescript export default { // ... plugins: ['@umijs/plugin-qiankun'], qiankun: { master: { // 主应用配置 }, }, }; ``` 3. 在主应用中使用 `qiankun` 的 `registerMicroApps` 方法注册子应用: ```typescript import { registerMicroApps, start } from 'qiankun'; import React from 'react'; import ReactDOM from 'react-dom'; function render({ appContent, loading }) { const container = document.getElementById('app-container'); ReactDOM.render( <div> {loading && <p>Loading...</p>} <div dangerouslySetInnerHTML={{ __html: appContent }} /> </div>, container, ); } registerMicroApps([ { name: 'sub-app', entry: '//localhost:8000', container: '#sub-app-container', activeRule: '/sub-app', }, ]); start(); ``` 4. 在子应用中使用 `react-app-rewired` 对 `create-react-app` 脚手架进行配置。 由于 `create-react-app` 脚手架默认隐藏了 webpack 配置,我们需要使用 `react-app-rewired` 来暴露 webpack 配置。具体做法可以参考官方文档:https://umijs.org/plugins/qiankun#%E5%AD%90%E5%BA%94%E7%94%A8 5. 在子应用中导出一个 render 方法,用于子应用启动时挂载到主应用中: ```typescript import React from 'react'; import ReactDOM from 'react-dom'; function render(props: any) { const { container } = props; ReactDOM.render(<App />, container); } export default render; ``` 6. 在子应用中使用 `qiankun` 的 `start` 方法启动子应用: ```typescript import { start } from 'qiankun'; import render from './render'; // 导出生命周期钩子函数 export const bootstrap = async () => {}; export const mount = async (props: any) => { render(props); }; export const unmount = async () => {}; // 启动子应用 start(); ``` 以上就是在 micro-app 微前端中接入 umi3 react 的基本步骤,需要注意的是,在子应用中同样需要安装 `qiankun` 包和 `react` 包,并且在开发时需要同时启动主应用和子应用,才能看到微前端的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值