首页 > 其他分享 >uniapp_06_全局消息提醒(App端)

uniapp_06_全局消息提醒(App端)

时间:2024-04-01 23:22:48浏览次数:38  
标签:uniapp 06 nativeObj App 全局 view View

uniapp 全局消息提醒(App端)

前言

最近在项目中需要用到全局消息提醒,才发现 App.vue 文件虽然是页面入口文件但是 App.vue 文件本身不是页面。
之后试了创建一个全局组件挂载在vue原型上,但是发现在h5中没有问题,但是在app和小程序中由于不存在 document 导致报错。
最后想到了3个解决办法

  1. 创建一个背景透明的页面做弹窗页(参考 uview 的压窗)
  2. 自定义头部导航栏 然后用全局变量做控制 (可适配多端 推荐用uview)
  3. 使用 原生控件对象 plus.nativeObj.View 创建一个(推荐使用)

原生控件对象( plus.nativeObj.View )

View 可以在屏幕上方绘制图形、文本、图片等内如,先创建的会被后创建的覆盖, 调用 Webview窗口对象的 append 方法添加到 Webview 中,不添加到 webView 窗口上面,但是会显示在 则会个 webView 的所有 子 webView 上

具体的介绍请看文档 nativeObj View 文档

示例代码

  class NativeMessage {
      viewStyle = {
        backgroundColor: `#000000`,
        top: "100px",
        left: "2%",
        width: "96%",
        height: `${uni.upx2px(200)}px`
      }
      
      constructor () {}
      
      create () {
          let _view = new plus.nativeObj.View(`id_${ Math.round(Math.random()*100) }`, this.viewStyle);
          // 绘制一个文本
          _view.drawText('需要显示的文本', {
              top:'0px',
              left:'0px',
              width:'100%',
              height: 'wrap_content'
          },{
              color: 'rgba(255,0,0,.6)',
          }, 'ID_Test')
          // 拦截点击事件 不拦截 事件会穿透
          _view.interceptTouchEvent(true);
          // 添加一个点击事件
          _view.addEventListener('click', ()=>{
              uni.showModal({
                  content: "点击了 VIEW",
                  confirmText: '关闭',
                  success: () => {
                      _view.close()
                  }
              })
          })
          _view.show()
          
      }
  }

  const a = new NativeMessage();
  a.create()

标签:uniapp,06,nativeObj,App,全局,view,View
From: https://www.cnblogs.com/tsuru/p/18109627

相关文章

  • 30 天精通 RxJS (06): 建立 Observable(二)
    CreationOperatorObservable有许多创建实例的方法,称为creationoperator。下面我们列出RxJS常用的creationoperatorcreateoffromfromEventfromPromiseneveremptythrowintervaltimerof还记得我们昨天用create来建立一个同步处理的observable吗?varsou......
  • 06循环结构_数据类型内置方法(格式化语法补充)
    【一】循环结构【1】什么是循环结构循环结构是一种程序控制结构,用于反复执行一组语句,直到满足某个条件为止。循环结构使得程序可以更有效地重读执行某段代码,节省了编写重复代码地工作。【2】循环结构的作用循环结构的主要作用是重复执行一组语句,直到满足某个条件。这种重......
  • 【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大
    问题描述在FunctionApp中配置了无代码模式的ApplicationInsights,但有时候发现,超过1MB的文件上传/下载操作成功。但是在ApplicationInsights中,却没有发现请求日志?这是一种什么情况呢? 问题解答ApplicationInsights 是具有采样功能的,当传入执行的速率超过指定的阈值时,Appl......
  • Node.js毕业设计基于HarmonyOS在线学习平台app(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的迅猛发展,移动应用已经成为了人们获取信息、学习知识的重要渠道。在线学习平台作为现代教育技术的重要组成部分,为人们提供了便捷的学习途径......
  • ACwing1064. 小国王
    线性状压DP#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<vector>#defineR(x)x=read()#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;......
  • 论文阅读:A new approach solve the multi-product multi-period inventory lot sizing
    论文:Anewapproachsolvethemulti-productmulti-periodinventorylotsizingwithsupplierselectionproblem期刊:Computer&OperationsResearch1.模型建立:具有供应商选择问题的多产品多周期库存批量确定1.1问题定义将具有供应商选择问题的多产品多周期库存批......
  • APP跨平台开发框架Flutter
    Flutter是Google打造的高性能、跨平台的UI框架。它可以给开发者提供简单、高效的方式来构建和部署跨平台、高性能移动应用;给用户提供漂亮、无平台区分的app体验。Flutter是如何做到这一点的呢?它的框架结构是怎么样的呢?接下来,我将写一系列的文章分析Flutter的框架层,结合源码分析Fl......
  • uniapp 开发之原生Android插件
    开发须知在您阅读此文档时,我们假定您已经具备了相应Android应用开发经验,使用AndroidStudio开发过Android原生。也应该对HTML,JavaScript,CSS等有一定的了解,并且熟悉在JavaScript和JAVA环境下的JSON格式数据操作等。为了插件开发者更方便快捷的开发uni原生插件!2.9.8版本......
  • CSci 4061多线程图像匹配服务器
    CSci4061:操作系统简介,2024年春季项目#3:多线程图像匹配服务器中间提交截止时间:2023年4月4日下午11:59(CDT)最终提交截止时间:下午11:59(CDT),4。12,20231.背景这个实验室的目的是使用C语言中的POSIX线程(pthreads)来学习线程编程和同步方法。在这个项目中,我们将使用多线程来提高服务器的......
  • 【全开源】抖音返利抖音联盟抖客小程序APP源码【首发】_博纳软云
    抖音返利抖音联盟抖客小程序APP源码——引领电商新潮流,实现购物返利新体验随着移动互联网的快速发展,电商行业也迎来了前所未有的变革。抖音作为短视频领域的佼佼者,不仅为用户提供了丰富的娱乐内容,还通过抖音返利、抖音联盟等创新模式,为用户带来了全新的购物体验。为了满足广......