提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

    • 1.微信跳转至浏览器,按钮样式与触发弹窗改变?
    • 2.安卓与ios的下载***app
    • 3.解析url,获取地址栏携带的参数
    • 4. 手机验证码登录
    • 5. 用户协议和隐私协议
  • 总结

实习记录,碰到的自己没有解决的问题,问了人才知道怎么实现的功能


1.微信跳转至浏览器,按钮样式与触发弹窗改变?

代码如下(示例):
在浏览器打开的页面部分显示:

    <divv-if="!wei"class="noweixin"><van-buttontype="promary"class="btn"@click="judge('open')">立即打开</van-button><van-overlay:show="show"@click="show = false"><divclass="big_pop"@click.stop><span class="text_6">无法打开</span><span class="text_7">可能您尚未安装***App,点击立即下载试试吧~</span><buttonclass="left_pop"@click="show = false">取消</button><buttonclass="right_pop"@click=" down ">下载</button></div></van-overlay></div>

在微信内置浏览器打开的部分:

    <divv-if="wei"class="inweixin"><van-buttontype="primary"class="btn"@click="judge('weixin')">登录成功,立即打开</van-button><van-overlay:show="isweixin"@click="isweixin = false"><divclass="wrapper"@click.stop><imgsrc="~@/assets/images/lead.png"alt=""></div></van-overlay></div>

js代码:
要实现进入页面,判断是否为微信内置浏览器,并根据浏览器类型,打开不同的页面。
添加mounted() {},判断,返回是否为微信。
微信内置浏览器页面:点击登陆成功按钮以后,显示弹窗,弹窗为引导去浏览器
浏览器页面:点击立即打开,判断是否下载***app,如果下载跳转,如果没有,引导点击下载,跳转下载。

判断是否已经下载过app,根据定时器判断,如果在两秒内可以跳转到app,则为已经下载,反之没有。

  mounted() {const ua = window.navigator.userAgent.toLocaleLowerCase()this.show = falsethis.isweixin = falseif (ua.match(/MicroMessenger/i) == 'micromessenger') {this.wei = true} else {this.wei = false}},judge(flag) {if (flag == 'weixin') {this.isweixin = true} else if (flag == 'open') {if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {window.location.href = `xlsxapp://requiopqkl5u9rlwgj3tputr?miniCourseId=${this.miniCourseId}` // ios app协议setTimeout(() => {this.show = true}, 2000)} else if (navigator.userAgent.match(/android/i)) {window.location.href = `https://a.app.qq.com/o/simple.jsp?pkgname=com.HotelZhiDing.zhiding365`// android app协议 其中miniCourseId 就是扫码获取的url里面的miniCourseIdsetTimeout(() => {this.show = true}, 2000)}}

2.安卓与ios的下载***app

代码如下(示例):

down() {var u = navigator.userAgentvar isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)var urls = {'android': 'https://a.app.qq.com/o/simple.jsp?pkgname=com.HotelZhiDing.zhiding365','ios': 'https://itunes.apple.com/cn/app/%E4%B8%89%E5%86%9C%E5%80%9F%E6%AC%BE/id1284453273?mt=8'}// 三元运算// window.location.href = isAndroid? urls.android : isiOS? urls.ios : urls.other;// 简化if (isAndroid) {window.location.href = urls.android} else if (isiOS) {window.location.href = urls.ios}}

3.解析url,获取地址栏携带的参数

  mounted() {this.state = falsethis.codeNUmber = this.GetQueryString('codeNUmber')this.hotelId = this.GetQueryString('hotelId')this.dealerId = this.GetQueryString('dealerId')this.directType = this.GetQueryString('directType')this.k = this.GetQueryString('k')if (this.codeNUmber) {this.state = true}if (this.k.length > 0) {getArgotUrl({ k: this.k }).then((res) => {if (res.code == 200 && res.data.ulr) {window.location.href = res.data.ulrconsole.log(res)}})}},GetQueryString: function(name) {// eslint-disable-next-line no-redeclarevar url = window.location.searchvar reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')var result = url.substr(1).match(reg)// eslint-disable-next-line keyword-spacingreturn result ? decodeURIComponent(result[2]) : null},

4. 手机验证码登录

            <inputv-model="code"type="number"class="input_yzm"maxlength="6"oninput="if(value.length>6) value=value.slice(0,6)"placeholder="请输入短信验证码"><div class="big_btn"><buttonclass="get_code_btn"@click="vCodeBtn">{{ innerText }}</button></div>
    login: function() {if (this.checked == false) {Toast({message: '请先同意协议内容'})} else {if (!this.state) {const data = {mobile: this.phone,code: this.code,codeNUmber: this.$route.query.codeNUmber}verificationCode(data).then(res => {console.log(res)if (res.code == 200) {Toast('登陆成功')localStorage.setItem('mid', res.data.memberId)localStorage.setItem('token', res.data.token)localStorage.setItem('time', Date.parse(new Date()))this.$router.push({ name: 'loginBrowser' })} else {const msg = res.msg || res.messageToast(msg)}})} else {const data = {mobile: this.phone,code: this.code,dealerId: this.dealerId || '',inviteCode: this.$route.query.codeNUmber}h5Register(data).then(res => {if (res.code == 200) {Toast('登陆成功')localStorage.setItem('mid', res.data.memberId)localStorage.setItem('token', res.data.token)localStorage.setItem('time', Date.parse(new Date()))this.$router.push({ name: 'loginBrowser' })} else {const msg = res.msg || res.messageToast(msg)}})}}},// 获取验证码messageAjax(_this) {console.log(222)const data = {mobile: this.phone}sendVerificationCode(data).then(res => {console.log(res)this.time(_this)if (res.code == 200) {Toast('验证码发送成功')} else {const msg = res.msg || res.messageToast(msg)}})},/*** 获取验证码**/// var  = 60;//验证码倒计时time() {const that = thisif (that.wait == -1) {that.innerText = '获取验证码'console.log('-----++++++=====')that.wait = 59} else {that.innerText = that.waitthat.wait--setTimeout(function() {that.time()}, 1000)}},// 验证码事件绑定vCodeBtn: function() {var phone = this.phone// 手机号正则var phoneReg = /^1\d{10}$/if (!phone || !phoneReg.test(phone)) {Toast('请输入有效的手机号码!')return false} else {console.log(111)this.wait == 59 ? this.messageAjax(this) : this}}

5. 用户协议和隐私协议

是使用路由跳转

    xieyi: function() {this.$router.push({ name: 'usedeal' })},zhengce: function() {this.$router.push({ name: 'privacyPolicy' })},

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

实习记录(H5页面)微信扫描二维码登陆注册,随后跳转浏览器。实现相关推荐

  1. 微信扫描二维码登陆的实现原理

    作者:程序员自由之路 https://www.cnblogs.com/54chensongxia/p/12530268.html 随着微信的普及,我们可以通过微信扫描设备二维码来实现IoT物联网场景中 ...

  2. 微信扫描二维码登陆的原理

    作者:吕十田 链接:https://www.zhihu.com/question/20368066/answer/23828176 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  3. 前端怎么从H5调起微信扫描二维码?小程序使用扫码功能.

    小程序如何使用扫码的功能呢? wx.scanCode(Object object) 参数 属性 类型 默认值 必填 说明 最低版本 onlyFromCamera boolean false 否 是否只 ...

  4. 前端如何实现微信扫描二维码下载应用,根据手机系统跳转不同页面

    菜花记录 前端如何实现微信扫描二维码下载应用,根据手机系统跳转不同页面 需求 :由于微信扫码无法直接下载需要再跳转到浏览器下载,所以微信扫码页面添加背景图和相关提示 草料二维码生成器地址 整改之前: ...

  5. 微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面

    实现微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面 而进入商城下载该项目 详情地址:gitee.com/DuJiaHui123- 1.创建完之后 替换文件里面的ios ...

  6. 微信扫描二维码跳转页面

    微信扫描二维码跳转页面 近在完成一个大作业,反正一个小部分就是扫描二维码,跳转到一个界面去,搜网上也没有什么太有用的信息,觉得难死了.. 后来想想,以前写过一个程序,就是把字符串生成相应的二维码,然后 ...

  7. 微信扫描二维码快速登录网站

    在近期的一个项目中用到了微信扫描注册.登录网站功能所以整理了下希望对读者有帮助. 首先,你需要有一个没有绑定微信.微信公众平台的邮箱注册成为微信开放平台开发者,在管理中心创建移动应用.或者网站应用获得 ...

  8. (4.3.1.11)微信扫描二维码无法下载apk文件解决办法

    最近客户网站扫描二维码下载apk的功能不能用了,客户反应扫描二维码后是一片空白,本以为是文件丢失,可是服务器上面文件位置都是正常的,后来才发现是因为腾讯屏蔽掉了外部文件的链接,经过几次不断的尝试,发现 ...

  9. 微信扫描二维码在内置浏览器打不开文件的下载链接怎么办?哪些api接口可以解决...

    有哪些api接口可以实现微信扫描二维码在内置浏览器打开文件的下载链接? 经常看到贴吧上有人吐槽微信的检测系统太严格了,动不动就拦截第三方链接.怎么才能解决,怎么才能避免等等一系列的问题.因为平时我也会 ...

最新文章

  1. POJ 2481 Cows POJ 2352 Stars(树状数组妙用)
  2. 13种老人不适合带孩子_农村常见却叫上不上名字的13种野生植物,乡下长大的孩子都见过...
  3. 【HDU - 1085 】Holding Bin-Laden Captive! (母函数)
  4. 内网渗透,横向移动总结(mimikatz域控)
  5. 【Python3网络爬虫开发实战】1.2.4-GeckoDriver的安装
  6. Python+Opencv简易车牌识别(二):形态学运算,HSV颜色空间筛选与图像分割
  7. 全球最厉害的14位程序员!你知道有哪几位?
  8. 图像语义分割(13)-OCNet: 用于场景解析的目标语义网络
  9. mysql日期范围比较函数_mysql 日期比较函数
  10. mysql 修改表的编码_Mysql表编码查看修改
  11. matlab振荡环节相频特性,自动控制原理第五章频率特性)汇总.ppt
  12. 卸载WPS后office文档图标不能正常显示和WPS网盘图标无法删除
  13. 图片格式批量转换器 - 支持 JPG、JPEG、PNG、BMP、GIF 等多种格式图片相互批量转换
  14. 第三方支付接口对接基本流程
  15. 南开大学校园邮箱pop3地址
  16. you-get下载优酷视频报错:用户账户异常、请重新登录
  17. 学英语《每日一歌》之because of you
  18. C语言大作业,可供学习---打字游戏
  19. AAAI 2020:北大开源算法姿态辅助多摄像机协作以进行主动对象跟踪
  20. 分布式应用:从CAP理论到PACELC理论

热门文章

  1. 8.18 纪中集训 Day18
  2. 图像元素遍历及像素值取反
  3. 华为模拟器的wlan配置
  4. 每天5分钟玩转openstack跟学(一)预备知识
  5. SQL 语法里的逻辑判断
  6. Mysql调优及索引锁机制学习
  7. FFT物理意义: 1024点FFT就是1024个实数,实际进入fft的输入是1024个复数(虚部为0),输出也是1024个复数,有效的数据是前512个复数
  8. 音响设备维护保养需要了解哪些常识?
  9. VR全景+整合营销如何助力企业营销转型升级?附知名营销案例
  10. 看了几个NHK的记录片