| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /**
- * 绘制调试工具
- */
- /**
- * 入口文件
- */
- function init(options, devTools) {
- let sysInfo = uni.getSystemInfoSync()
- let tagConfig = uni.getStorageSync("devTools_tagConfig");
- if (!tagConfig) {
- tagConfig = {}
- }
- tagConfig = Object.assign({
- show: options.bubble.status,
- x: sysInfo.screenWidth - 90,
- y: sysInfo.screenHeight - 90,
- }, tagConfig)
- tagConfig.show = options.bubble.status;
- // 拖动范围限制
- let dragLimit = {
- min: { x: 0, y: 0, },
- max: {
- x: sysInfo.screenWidth - 70,
- y: sysInfo.screenHeight - 24,
- }
- }
- let view = new plus.nativeObj.View('debugTag', {
- top: tagConfig.y + 'px',
- left: tagConfig.x + 'px',
- height: '24px',
- width: '70px',
- backgroundColor: options.bubble.bgColor,
- });
- view.drawText(options.bubble.text, {}, {
- size: '12px',
- color: options.bubble.color,
- weight: 'bold'
- });
- if (tagConfig.show) {
- view.show();
- }
- let isTouch = false;
- let touchStart = {
- l: 0,
- t: 0,
- x: 0,
- y: 0,
- time: 0,
- hasMove: false,
- }
- view.addEventListener("touchstart", (e) => {
- isTouch = true;
- touchStart.l = e.clientX;
- touchStart.t = e.clientY;
- touchStart.time = new Date().getTime();
- touchStart.hasMove = false;
- })
- view.addEventListener("touchmove", (e) => {
- if (!isTouch) return;
- if (!touchStart.hasMove) {
- touchStart.hasMove = true;
- }
- let x = e.screenX - touchStart.l;
- let y = e.screenY - touchStart.t;
- x = Math.min(Math.max(x, dragLimit.min.x), dragLimit.max.x)
- y = Math.min(Math.max(y, dragLimit.min.y), dragLimit.max.y)
- view.setStyle({
- top: y + 'px',
- left: x + 'px',
- })
- touchStart.x = x;
- touchStart.y = y;
- })
- view.addEventListener("touchend", (e) => {
- isTouch = false;
- if (
- !touchStart.hasMove
- || touchStart.time > (new Date().getTime() - 300)
- ) {// 单击事件
- let pages = getCurrentPages()
- let route = options.route.substring(1, options.route.length - 2);
- if (pages[pages.length - 1].route == route) {
- // 已经处于debug页面,不响应点击事件
- return;
- }
- devTools.show()
- } else { //拖拽结束事件
- tagConfig.x = touchStart.x;
- tagConfig.y = touchStart.y;
- uni.setStorageSync("devTools_tagConfig", tagConfig)
- }
- })
- uni.setStorageSync("devTools_tagConfig", tagConfig)
- }
- export default init;
|