小程序开发:app.vue检测更新时判断是否是朋友圈进入

news2024/9/21 5:45:47

因为如果从朋友圈点进小程序来的,有些功能就用不了,所以需要判断下是否从朋友圈点进来的。

检查代码如下:

checkScene() {

// 判断场景值 如果是从分享到朋友圈再打开 就会有一些功能无法使用

// 详见
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html#%E5%8D%95%E9%A1%B5%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E9%99%90%E5%88%B6

let launchOpt = wx.getLaunchOptionsSync()

// console.log('launchOpt', launchOpt)

if (launchOpt.scene == 1154) {

// 表示为从朋友圈分享打开, 此时提示“请前往小程序使用完整服务”

return false

}

return true

}

否则会有各种问题出现,比如:

我会在app.vue启动时检测是否有更新,但是如果从朋友圈点进来的那么检测更新的api将会无法调用,所以我这里如果检测到时朋友圈进入小程序,则return即可:

我这里的检测更新会在有更新时弹窗用户,用户点击确认后就会下载最新的小程序包了。

下面是完整的检测更新代码:

// 检查更新

miniAutoUpdate() {

// 如果从朋友圈点开,则不做更新检查,因为无法使用

if (!this.checkScene()) {

return

}

// 检测更新

if (wx.canIUse('getUpdateManager')) {

const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function(res) {

console.log('onCheckForUpdate====', res)

// 请求完新版本信息的回调

if (res.hasUpdate) {

console.log('res.hasUpdate====')

updateManager.onUpdateReady(function() {

wx.showModal({

title: '更新提示',

content: '新版本已经准备好,是否重启应用?',

success: function(res) {

console.log('success====', res)

// res: {errMsg: "showModal: ok", cancel: false, confirm: true}

if (res.confirm) {

// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启

updateManager.applyUpdate()

}

}

})

})

updateManager.onUpdateFailed(function() {

// 新的版本下载失败

wx.showModal({

title: '已经有新版本了哟~',

content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'

})

})

}

})

}

}

我会在app.vue的onlaunch方法里调用:

onLaunch: async function() {

console.log('App Launch start')

// #ifdef MP-WEIXIN

// 只有小程序才触发自动更新 其他平台的可以再继续添加编译条件

this.miniAutoUpdate()

// #endif

},

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

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

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

相关文章

Nodejs 第四十三章(redis)

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它提供了一个高效的键值存储解决方案,并支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表&a…

【机器学习实战1】泰坦尼克号:灾难中的机器学习(一)数据预处理

🌸博主主页:釉色清风🌸文章专栏:机器学习实战🌸今日语录:不要一直责怪过去的自己,她曾经站在雾里也很迷茫。 🌼实战项目简介 本次项目是kaggle上的一个入门比赛 :Titani…

QML中动态表格修改数据

1.qml文件中的实现代码 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_model…

Freesia项目目录结构

目录结构 前端目录: (目录结构来自layui-vue-admin) src文件下 api(前端请求后端服务的路由)assert(一些内置或必要的资源文件)layouts(全局框架样式组件)router&…

Facebook的数字治理挑战:社交平台的未来模式

在当今数字化时代,社交媒体平台已经成为人们日常生活的重要组成部分,而Facebook作为其中最具代表性的平台之一,其承载的社交功能和影响力已经不可小觑。然而,随着社交媒体的普及和发展,一系列数字治理挑战也随之而来&a…

git项目推荐 maku-boot低代码开发项目推荐

介绍项目 项目仓库地址 官方gitee,这是他的官网 用于做二次开发的脚手架在合适不过 后端框架采用 springboot3,security6,Mybatisplus2,jdk,各种oss的集合,判断ip地址等监控,用来作为源码学习和二次开发都是很好的教材 代码基本都是mvc的二次封装,便于理解 代码模块 启…

初学JavaWeb开发总结

0 什么是Web开发 Web: 全球广域网,又称万维网(www World Wide Web),能够通过浏览器访问的网站。 Web开发,就是开发网站的,如:淘宝、京东等等。 1 网站的工作流程 流程: 浏览器先向前端服务器请求前端资…

李修思将出席工业循环水节水减排提标降碳新技术推广及应用

演讲嘉宾:李修思 技术总监 山东海能环境技术有限公司 演讲题目:工业循环水节水减排提标降碳新技术推广及应用 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明确“低碳经济”新的战略目标,…

Axure导入使用ElementUI组件库

在使用Axure进行UI设计时,我们可能导入ElementUI组件库或者一些其他的元件库,其实非常简单,如果你还没有装好Axure可以先安装好AxureRP9汉化版,接下来,我们以AxureRP9汉化版来演示如何导入ElementUI组件库。 第一步&a…

搭建LNMP环境并搭建论坛和博客

目录 一、LNMP架构原理 二、编译安装Nginx 三、编译安装MySQL 四、编译安装PHP 五、配置Nginx支持PHP解析 六、安装论坛 七、安装博客 一、LNMP架构原理 LNMP架构,是指在Linux平台下,由运行Nginx的web服务器,运行PHP的动态页面解析程序…

光伏储能MPPT控制系统如何进行浪涌静电保护?

MPPT(Maximum Power Point Tracking)是太阳能电池板光伏发电系统中重要的一种控制技术。MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出对蓄电池充电&#xff0…

Sophon AutoCV推动AI应用从模型生产到高效落地

随着技术市场和应用方向的逐渐成熟,人工智能与各行各业的结合和落地逐渐进入了深水区。 虽然由于行业规模化和应用普及度的限制,人工智能在“传统”行业的落地不如消费互联网行业,但是借助人工智能为“传统”行业的发展注入新能量一直是相关…

5_怎么看原理图之协议类接口之NAND Flash笔记

NAND Flash原理图: 由NAND Flash的原理图可以看出,做为一个存储芯片,只有I/O引脚,并没有地址引脚,怎么传地址?遵循一定的规范,先通过LDATA把地址传出去,再传数据。具体的需要查看芯片…

Premiere Pro 2022

Premiere Pro 2022是一款功能强大的视频编辑软件,适用于电影、电视和网络等各种类型的视频制作。它提供了丰富的剪辑、调色、音效和字幕等工具,帮助用户快速完成视频素材的剪辑和后期处理。同时,Premiere Pro 2022还支持多平台编辑和与其他Ad…

#LLM入门|Prompt#2.2_ AI 应用开发的范式_Language_Models,the_Chat_Format_and_Tokens

在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。 我们还将介绍 LLM 的提问范式(chat format),这是一种指定系统消息…

大象如何转身-苹果放弃10年领域

1.苹果放弃造车 汽车作为普通家庭最贵的消费品之一,近些年很多手机厂商也纷纷下场造车,特别是去年华为、小米不约而同举行发布会。对于手机市场已经逐渐稳定了,这些手机大厂又开始瞄准汽车制造。加上之前燃油车厂商,汽车这个市场…

(二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布

前言 本节内容会介绍如何使用Docker Pipeline插件实现docker项目的pipeline流水线项目的可持续化集成发布,在开始本节内容之前,我们要先搭建好docker环境,以及镜像本地存储仓库docker harbor,关于docker和docker harbor的安装,可查看作者往期博客内容。 正文 ①安装Doc…

【uniapp】小程序自定义一个通用的返回按钮组件

左边箭头,右边文字可以自定义,但是不要太长,太长可以自己改 .back的width值,改宽一点。 用这个组件的时候首先要在pages.json里把导航栏变成自定义的: ,{"path" : "pages/test/test","style&…

力扣138.随机链表的复制

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

刘志雄:新产品市场+新智造模式,构建“声音+”产业创新生态 | 演讲嘉宾公布

随着科技的飞速发展,新技术、新的应用场景不断涌现,也影响着“声音”产业未来的发展方向。如何应对市场变化,满足市场的多样化需求?如何应用新产品市场、智造新模式去构造“声音”产业创新生态呢?请到GAS2024一探究竟。…