微信小程序纯嵌入Vue页面,制作一个完整的小程序(微信小程序用vue)

效果图

微信小程序纯嵌入Vue页面,制作一个完整的小程序(微信小程序用vue)

小程序加载链接

微信嵌入链接代码相当简单
1、index.wxml加载一个web-view组件,动态绑定地址

<!--index.wxml--><view class="container"> <web-view src="{{ webSrc }}"></web-view></view>

2、js中动态修改加载的地址,这是为了后面分享什么用,其实也可以直接写上链接

// index.jsPage({ data: { webSrc: '' }, onLoad(options) { let url = 'https://xcx.lycyll.com/#/index?m_p_f_p=1' this.setData({ webSrc: url }) }})

赶紧试试吧,是不是发现页面随着路由切换,没有提供返回按钮,虽然可以用系统的返回事件,但是没有返回按钮觉得很奇怪。

扩展vue路由,适配小程序

1、因为有分享等操作,导致我们没法固定认为某个页面是第一个页面,我们需要微信小程序onload函数内识别当前是否为小程序打开的第一个页面,并使用参数的方式传给vue(m_p_f_p为1,代表第一个页面),onload函数修改如下:

onLoad(options) { let url = options.url; if (url) { url = decodeURIComponent(url) let pages = getCurrentPages(); if (pages.length == 1) { if (url.indexOf('?') > -1) { url = url '&m_p_f_p=1' } else { url = url '?m_p_f_p=1' } } } else { url = 'https://xcx.lycyll.com/#/index?m_p_f_p=1' } this.setData({ webSrc: url }) }

2、router扩展,识别参数。

// 用到的基础函数function GetQueryString(name) { let reg = new RegExp('([?]|&)' name "=([^&]*)(&|$)"); let r = window.location.href.substr(1).match(reg); if (r != null) { return decodeURIComponent(r[2]); } return '';}// 放在函数覆盖,扩展对象处理let router = Object.create(orgin)router.m_p_f_p = 0if (GetQueryString('m_p_f_p') == 1) { router.m_p_f_p = 1}

3、扩展router.push函数,让第一个页面的时候,调用小程序跳转页面函数。其他情况调用原来的push函数。

router.push = function () { if (router.m_p_f_p == 1) { let webUrl = '' let location = arguments[0]; if (typeof location == 'string') { let path = basePath location; webUrl = path; } else { // 获取路径,有的页面用的name跳转 let path = router.getPathWithRoute(location); // 获取参数 let args = router.getArgsWithRoute(location); // 拼接参数 let arr = []; for(let key in args){ arr.push(`${key}=${args[key]}`); } if (path.indexOf('?') > -1) { path '&' arr.join('&') } else { path '?' arr.join('&') } path = basePath path; webUrl = path; } // 如果是微信小程序,调用微信的navigateTo,mpWxFunc封装了微信相关的函数 if (browserEnv.checkEnvType(browserEnv.enum.WX_MINIPROGRAM)) { mpWxFunc.navigateTo(webUrl); return ; } } // 其他情况使用原型上的push函数 router.__proto__.push.call(this, ...arguments)};

4、go函数需要相反处理,如果最后一个页面了,需要调用小程序的返回,或者返回页面大于当前栈里面页面数,也直接返回

router.go = function (n) { // 判断最后一个页面,或者返回数大于当前页面栈。customRouterData是前面为了动画扩展的。 if (router.customRouterData.history && (router.customRouterData.history.length <= -n)) { // 判断是微信小程序 if (browserEnv.checkEnvType(browserEnv.enum.WX_MINIPROGRAM)) { mpWxFunc.navigateBack() return ; } } router.__proto__.go.call(this, n)}

到这里就基本完成了,前端开发只需要一心去写vue代码就好了。后面这套代码还能嵌入支付宝小程序等哦,封装思路基本不变。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月5日 上午9:31
下一篇 2023年4月5日 上午9:41

相关推荐

  • 项目管理 要求

    项目管理:追求成功的关键因素 项目管理是组织中至关重要的一部分,它涉及到协调和管理一系列活动,包括开发、实施、维护和交付等。在现代商业环境中,项目管理已经成为成功的关键因素之一,因…

    科研百科 2024年7月27日
    67
  • 权威解读:加快构建智能集约的平台支撑体系 推进数字政府高质量发展

    来源:人民网 原创稿 编者按:日前,国务院印发《关于加强数字政府建设的指导意见》(以下简称《指导意见》),就主动顺应经济社会数字化转型趋势,充分释放数字化发展红利,全面开创数字政府…

    科研百科 2022年8月18日
    191
  • 科研项目特色与创新点

    科研项目特色与创新点 近年来,随着科技的不断发展,科研项目也不断涌现出新的特色和创新点。下面,本文将介绍一些具有代表性的科研项目特色与创新点。 一、人工智能领域的科研项目 人工智能…

    科研百科 2025年3月26日
    2
  • 项目文明施工管理系统图

    项目文明施工管理系统图 文明施工管理是建筑工程中非常重要的一环,它关系到建筑工程的质量、安全和环保等方面。为了有效地进行文明施工管理,我们采用了项目文明施工管理系统图。 该系统图包…

    科研百科 2025年1月13日
    0
  • 远程控制软件实力大PK!ToDesk、向日葵和Teamviewer到底谁更强?(向日葵远程控制与teamviewer哪个好)

    因疫情被按下的“暂停键”,已逐步切换成复工复产的“快进键”。疫情催生的远程办公、视频会议、在线教育、远程医疗等新模式、新业态,正在加快涌现和发展。 远程办公或成为常态 据报道,国外…

    科研百科 2022年9月15日
    290
  • 科研项目收益包括哪些

    科研项目的收益主要包括多个方面。首先,科研项目可以带来经济收益,例如通过出售研究成果或将其应用到商业中。其次,科研项目还可以为研究人员提供就业机会,提高其社会地位和收入。此外,科研…

    科研百科 2025年3月26日
    2
  • 赠书!与时俱进,《企业合同管理33讲》再版!民法典适用新解读

    法报君赠书活动持续进行中! 合同法是市场经济的基本法, 九民纪要就合同实务的法律适用提出解决方案, 民法典合同编带来“变”与“不变”。 本书与时俱进,聚焦企业合同管理, 从律师的视…

    科研百科 2022年8月6日
    280
  • 燃气工程管理系统

    燃气工程管理系统 燃气工程管理系统是一种用于管理燃气工程的软件系统,能够帮助工程师和管理人员更高效地完成燃气工程的工作。燃气工程管理系统可以提供许多功能,包括: 1. 自动化流程:…

    科研百科 2024年10月1日
    30
  • 家具erp:仅仅是定制家具行业入门级软件(家具erp-仅仅是定制家具行业入门级软件吗)

    随着自动化、数字化、智能化快速普及的这几年,大家都频繁接触家具ERP、家具MES、家具WMS、家具IPACK、家具门店ISHOP、家具APS等等复杂的软件名词,从严格意义来说,家具…

    科研百科 2024年8月7日
    43
  • 若依教程

    若依教程:如何学习若依语言 随着若依语言的不断发展,越来越多的人们开始学习若依语言。学习若依语言不仅能够提高人们的语言能力,还能够拓展人们的视野,让人们更好地了解和欣赏若依文化。那…

    科研百科 2024年10月27日
    0