uniapp 悬浮窗-任意界面 Ba-FloatWinWeb

简介(下载地址)

Ba-FloatWinWeb 是一款支持自定义任意界面的悬浮窗插件。采用webview方式,同时支持本地、网络地址;自带几种界面,可直接使用。

  • 支持显示、更新、隐藏
  • 支持记录显示位置
  • 支持拖动
  • 支持监听点击事件
  • 支持自动申请、判断悬浮窗权限
  • 支持手动申请、判断悬浮窗权限
  • 支持同时设置多个悬浮窗,并且可以不同样式
  • 自带几种界面,可直接使用(见效果图)

uniapp 常用原生插件大全


截图展示

请添加图片描述

使用方法

script 中引入组件

	const floatWin = uni.requireNativePlugin('Ba-FloatWinWeb')

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

        methods: {showFW(tag) { //显示let params = {//isToast: true,//tag: tag,//悬浮窗标识,用于区分多个悬浮窗,可以不传webUrl: "file:///android_asset/testFloatWin.html",//网页地址width:128,//宽度 pxheight: 128,//高度 pxxRatio: 0.8,//x轴偏移量(屏幕宽度比例)yRatio: 0.7,//y轴偏移量(屏幕高度比例)//moveType: 1,//拖动方式:1:不可拖动 2:任意拖动、3:贴边拖动。默认2//isRememberXY: false,//是否记住上次的位置。默认true//isPermission: false,//是否申请悬浮窗权限。默认true//widthRatio:1,//宽度(屏幕宽度比例),width有值时无效//heightRatio: 0.3,//高度(屏幕高度比例),height有值时无效//webviewBgColor:"#FFFFFF"//webview背景色,默认透明}floatWin.show(params,(res) => {console.log(res);uni.showToast({title: res.msg,icon: "none",duration: 3000})});},updateFW(tag) { //更新数据let webUrl ="file:///android_asset/testFloatWin.html?num1=66&num2=21"floatWin.update({webUrl: webUrl,//tag: tag},(res) => {console.log(res);uni.showToast({title: res.msg,icon: "none",duration: 3000})});},hideFW(tag) { //隐藏floatWin.hide({tag: tag},(res) => {console.log(res);uni.showToast({title: res.msg,icon: "none",duration: 3000})});},}

点击事件监听

在应用生命周期app.vue的onLaunch事件中设置监听:

        onLaunch: function() {var globalEvent = uni.requireNativePlugin('globalEvent');globalEvent.addEventListener('baFloatWinWeb', function(e) {console.log('baFloatWinWeb:' + JSON.stringify(e));//处理点击事件});},onShow: function() {},onHide: function() {}

点击事件参数

属性名说明
action事件类型,如:onClick
tag悬浮窗标识,用于区分多个悬浮窗,可以不传
json附加参数,可在html网页中自定义添加

示例:

{"action":"onClick","json":{"msg":"点击了item1"},"tag":"menu"}

网页配置

同时支持在线网页和本地网页。

如果用在线网页,直接传地址即可;

如果用本地网页,文件放在项目根目录,“nativeplugins/Ba-FloatWinWeb/android/assets/”目录下,没有就新建,配置如下(demo):

├── nativeplugins ├── Ba-FloatWinWeb├── android                  ├── assets├── static├── ba_float_win_icon.png├── ba_float_win_logo.png├── testFloatWin.html├── testFloatWin2.html ├── testFloatWin3.html ├── testFloatWin4.html  

webUrl参数,传入地址的格式为:“file:///android_asset/”+html文件名称

html网页示例(testFloatWin.html)

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><title>webview</title><script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script><script>$(document).ready(function() {onLoad()});function onLoad() {let num1 = GetUrlParam("num1")let num2 = GetUrlParam("num2")let num3 = GetUrlParam("num3")let num4 = GetUrlParam("num4")if (num1)$("#num1").text(num1)if (num2)$("#num2").text(num2)if (num3)$("#num3").text(num3)if (num4)$("#num4").text(num4)}function onClickFW(json) { //点击事件Android.onClickFW(json);}//获取url参数function GetUrlParam(paramName) {let url = decodeURI(window.location.href);console.log(url)var arrObj = url.split("?");if (arrObj.length > 1) {var arrPara = arrObj[1].split("&");var arr;for (var i = 0; i < arrPara.length; i++) {arr = arrPara[i].split("=");if (arr != null && arr[0] == paramName) {return arr[1];}}return "";} else {return "";}}</script><style>body,html {height: 128px;width: 128px;margin: 0;padding: 0;overflow: hidden;}.container {display: flex;flex-direction: column;border-radius: 12px;width: 128px;height: 128px;background: rgba(0, 0, 50, 0.6);//box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.2);border-radius: 12px 12px 12px 12px;opacity: 1;}.row {display: flex;flex-direction: row;margin: 6px 6px 0px 6px;}.item {display: flex;flex-direction: column;justify-content: center;align-items: center;width: 55px;height: 55px;background: rgba(255, 255, 255, 0.1);border-radius: 8px 8px 8px 8px;opacity: 1;}.name {text-align: center;width: 34px;height: 17px;font-size: 13px;font-weight: 500;color: rgba(255, 255, 255, 0.6);}.num {text-align: center;margin-top: 6px;width: 21px;height: 18px;font-size: 14px;font-weight: bold;color: #FFFFFF;}</style></head><body style=" overflow:hidden" scroll="no"><div class="container"><div class="row"><div class="item" onclick="onClickFW('item1')"><div class="name">采购</div><div id="num1" class="num">50</div></div><div class="item" onclick="onClickFW('item2')" style="margin-left: 6px;"><div class="name">售出</div><div id="num2" class="num">20</div></div></div><div class="row"><div class="item" onclick="onClickFW('item3')"><div class="name">折损</div><div id="num3" class="num">3</div></div><div class="item" onclick="onClickFW('item4')" style="margin-left: 6px;"><div class="name">过期</div><div id="num4" class="num">0</div></div></div></div></body>
</html>

api 列表

方法名说明
show显示
update更新数据
hide隐藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

惊讶!投资人明目张胆套商业机密;AIGC招聘市场解读;超级个体公开课;如何说服客户购买AI产品 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 投资人明目张胆套商业机密&#xff0c;创业者需要了解这些 佩妮小阿姨-知名机构投资人路演竟然当场欺骗创业者 昨晚创投圈火热的话题…

大数据技术准备

Hbase&#xff1a;HBase 底层原理详解&#xff08;深度好文&#xff0c;建议收藏&#xff09; - 腾讯云开发者社区-腾讯云 Hbase架构图 同一个列族如果有多个store&#xff0c;那么这些store在不同的region Hbase写流程&#xff08;读比写慢&#xff09; MemStore Flush Hbas…

C语言——指针进阶(三)

目录 一.前言摘要 二.排序函数qsort的模拟实现 三.指针和数组笔试题解析 一.前言摘要 讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现&#xff08;可以排序任意类型变量&#xff09; 二.排序函数qsort的模拟实现 目标&#xff1a;…

Java基础-异常处理

文章目录 异常机制的作用异常存在的形式 异常机制的作用 什么是异常&#xff0c;异常的作用&#xff1f;程序在执行的过程中发生了不正常的情况&#xff0c;而这种情况被称之为"异常"。Java语言是很完善的语言&#xff0c;提供了异常的处理方式&#xff1a;Java把异…

JUC相关面试题

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱发博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;社区论坛&#xff1a;希望大家能加入社区共同进步…

SpringMVC之CRUD(增删改查)

SpringMVC之CRUD(增删改查) 数据库 # 创建表CREATE TABLE Student (sid INT PRIMARY KEY,sname VARCHAR(50),sage INT,spic VARCHAR(255));给student表插入数据 INSERT INTO Student (sid, sname, sage, spic) VALUES (1, John Do, 25, path/to/image1.jpg), (2, Jane Smith, …

IIS解析漏洞复现

文章目录 漏洞复现总结 漏洞复现 打开虚拟机&#xff0c;在C:\inetpub\wwwroot\8000_test目录下放一个phpinfo.php文件&#xff1a; 在服务器管理器中打开IIS管理器&#xff0c;选择处理映射程序&#xff1a; 点击添加模块映射&#xff1a; 配置映射模板&#xff0c;php文件…

【AI】数学基础——最优化

从本质上讲&#xff0c;人工智能的目标就是最优化——在复杂环境中与多体交互中做出最优决策 几乎所有的人工智能问题都会归结为一个优化问题 在线性搜索中&#xff0c;确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数置信域的思想是先确定搜索步长&#xff0…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(一)

&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡&#xfecc;&#xfecc;&#xfecc;&#xfecc;…

Qt使用注意事项

1.菜单选项不能出现数字&#xff0c;可以是 英文 加 “_”&#xff1a; 2.如何确保加载的图片&#xff0c;尺寸大小与原来一样&#xff1f; 【QT】添加图片资源并使用QImage加载图片显示_qimage显示图片_李春港的博客-CSDN博客 ui->PicLabel->setPixmap(QPixmap::fromIm…

K8s的网络——underLay和overLay网络

0. 基础知识 1&#xff09;网络7层基础知识 在网络7层协议基础里&#xff0c; 第一层物理链路&#xff1b;第二层是数据链路层&#xff0c;在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性&#xff0c;主机A发送数据时&#xff0c;会向局域网内进行广播…

QT生成ICO文件

生成ICO文件 #include <QApplication> #include <QImage> #include <QIcon> #include <QFile> #include <QDebug> #include <QPixmap>int main(int argc, char* argv[]) {QApplication app(argc, argv);// 读取图片文件QImage image(&quo…

IDEA编写Java编程代码提示插件

网址&#xff1a; aiXcoder idea软件中使用代码提示&#xff1a; aixcoder

uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)

后台老哥要用微软的signalr&#xff0c;总结了一些经验和问题 引入方法 1、npm npm i microsoft/signalr 2、下载他的js或者cdn <script src"https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>在uniapp中&…

Python vs C#:首先学习哪种编程语言最好?

进入编码可能很困难。 最艰难的部分? 决定先学什么语言。 当谈到 Python 与 C# 时,可能很难知道在您的决定中要考虑哪些因素。 我们为您提供了有关这些全明星编程语言的所有信息。 什么是 C#? 自 2000 年作为 Microsoft Visual Studio 的一部分开发 C# 以来,它一直是开发人…

Postman使用_Tests Script(断言测试)

断言测试可以在Collection、Folder和Request的 pre-request script 和 test script中编写&#xff0c;测试脚本可以检测请求响应的各个方面&#xff0c;包括正文、状态代码、头、cookie、响应时间等&#xff0c;只有测试符合自定义的要求后才能通过。 pm对象提供了测试相关功能…

常用的8位单片机+2.4g遥控芯片的“化学”反应

8位单片机通常是微控制器&#xff0c;它们具有相对简单的处理能力&#xff0c;但对于许多嵌入式系统和低复杂度应用而言&#xff0c;它们足够使用。这些芯片通常具有较低的功耗&#xff0c;价格相对实惠。 2.4GHz无线通信芯片&#xff0c;则具备强大的无线通信能力。它们可以实…

windows 下docker安装宝塔镜像 宝塔docker获取镜像

1. docker 安装宝塔 打开链接&#xff1a;https://www.docker.com/get-started&#xff0c;找对应的版本下载docker&#xff0c;安装docker打开百度云盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1DGIjpKkNDAmy4roaKGLA_w 提取码&#xff1a;u8bi 2. 设置镜像 点…

java设计模式之观察者模式

. 基本概念 观察者&#xff08;Observer&#xff09;模式中包含两种对象&#xff0c;分别是目标对象和观察者对象。在目标对象和观察者对象间存在着一种一对多的对应关系&#xff0c;当这个目标对象的状态发生变化时&#xff0c;所有依赖于它的观察者对象都会得到通知并执行它…

1、MongoDb综述

1. MongoDb综述 1.1. 什么是Nosql NoSQL&#xff1a;Not Only SQL ,本质也是一种数据库的技术&#xff0c;相对于传统数据库技术&#xff0c;它不会遵循一些约束&#xff0c;比如&#xff1a;sql标准、ACID属性&#xff0c;表结构等。 Nosql优点 l 满足对数据库的高并发读写…