前言
在微信小程序里,可以简单分享一个页面,比微信H5简单多了。但是共享页面(也叫卡片)打开后只是一个单独的页面,没有底部导航栏。当您单击后退按钮时,您将直接退出小程序。如果需要进入首页,还必须点击顶部胶囊中的“返回首页”,但这个功能很少有人知道。
要解决这个问题,有两个办法。
首先,在共享页面上添加一个显眼的“主页”浮动按钮,点击按钮跳转到主页。这个方法很容易理解,但是万一页面多了,就要开发很多这样的浮动按钮,点击Back依然是退出小程序。
类型二:分享的时候不要分享这个页面,要分享主页的链接,而是把这个页面的参数带在链接上,打开卡号进入主页,先判断参数,符合要求直接跳转到目标页面。这样做的好处是不需要修改ui效果,只需要在共享界面上做一些处理,并且还支持返回首页;缺点是会从主页闪到目标页面。
同时,如果小程序涉及分享功能,需要记录是谁邀请我的,所以需要在分享参数中加入我自己的分享id。综合考虑后,第二种方法更合适。
步骤1:创建共享配置文件
文件的模块包含五个属性,即config数组(页面路径和页面id数组)、find方法(通过id查找页面路径的方法)、build(创建共享参数的方法,如返回页面id、共享id、文章id等)。),和baseshare(基本分享方式,返回微信分享需要的对象)
module . exports={ config :[{ page id : 1,pageurl:'/pages/home/home ',istab: true,is some : true }],/* *查找对应的page @pageId pageid */find:函数(page id)this . config . foreach(item={ if(item . page id . tostring()==page id . tostring()){ result=item;}});返回结果;},/* *创建共享参数@obj共享键值对[默认内置salesmanId或share id]*/build : function(obj){ if(!(obj instance of Object)){ obj={ };}让userInfo=getApp()。if(UserInfo . is _ sales manid){ obj . sales manid=UserInfo . sales man id;} else { obj . shareid=UserInfo . id;}让params=[];for(let name in obj){ params . push(name '=' obj[name]);}返回params . join(“”);},/* *基本共享@title title @params url参数@imageUrl图片[默认截图]*/baseshare : function({ title,params,imageUrl }){ return { title : title,path3360'/pages/home/home?这个。build (params),image URL : image URL | | ' ' } } } PS:config与小程序的页面一一对应,需要手动配置。
第二步:介绍pageshare.js文件
const Pageshare=require('./././utils/page share ');//在要共享的页面上介绍此文件
步骤3:配置共享信息
修改页面上需要共享的共享信息
onsharepmessage : function(){ return page share . base share({ title : this . data . course . title,//title params 3360 { page id : 12,//page id source: '微信小程序课程分享',//用户自定义参数id: this.data.course.id //用户自定义参数} });}共享者等基本参数默认添加在}pageshare的底层,无需在此添加
第四步:App.js获取页面参数(点击卡片打开时)
当用户B点击用户A共享的链接时,app.js会触发以下代码
此处已完成共享者信息的绑定。
第五步:主页获取请求参数并进行第二次跳转
从共享配置中,我们可以知道共享路径是首页,然后带来自定义参数和共享参数
那么当用户b打开用户a发送的链接,就会打开首页,所以我们在首页进行参数判断,如下:
shareRedirect:函数(share) {if (share.pageId!=null){ 0让共享页面=页面共享。查找(共享。页面id);让params=[];用于(让名字共享){ if (name!==' PageID '){ params。push(name '=' share[name]);} } if(SHAREPOINT。伊斯塔布。SHAREPOINT页面。IsHome){ wx。SwitCh选项卡({ URL : SHAREPOINT页面。页面URl?参数。join(')});} else { wx。navigateto({ URL : sharepage。页面URl?)参数。join(')});}}}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。