微信小程序开发遇到的坑:(如何把转发的卡片返回首页,setInterval和settimeout的区别,跳转关联公众号文章,如何上线)

本文主要是介绍微信小程序开发遇到的坑:(如何把转发的卡片返回首页,setInterval和settimeout的区别,跳转关联公众号文章,如何上线),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     首先,采用的是原生开发,框架也都了解过,我也是VUE的忠实爱好者,但是还是不想去踩用框架的坑,等稳定点再说哈哈,原生本身就足够强大。一开始写不太熟练边看文档边写还抄抄github上的各种栏。其实和HTML很接近,主要耗时还是在CSS样式方面。后台也就认证,发模板这种要点操作,但是都是做一次就会的操作。可以说小程序的入门门槛比传统的web开发要低一些。但同时成本也是提高了,就像要使用HTTPS协议,备案这种就需要很长的时间成本。

1.对于第一个问题:默认的使用分享分享到的只是一个页面,如果用户按返回是无法继续在小程序页面的,这当然对引流不利,对于这种其实使用一种很取巧的方法就可以了,简单描述一下这个方法,基本都会。

  在这个页面的分享事件中(onShare事件),我们都知道可以设置title,path这种,在这里我们设置一个path,在路径后面用url传值的方式,带上“?XXX=XXX”,然后再需要有返回的页面中的onload事件中,每次判断这个XXX的参数存不存在,来判断是不是由分享卡片进入,如果存在则表示从分享卡片进入,然后设置一个定时器,setInterval或者settimeout,直接跳转到那个分享卡片的路径,这样用户既看到了那个页面,又能返回我们想要他返回的页面。

2.第二个问题,接上面的问题,也许有人知道setInterval和settimeout的区别了,觉得都可以用用法类似,其实小程序里的setInterval是无法主动在unload事件中释放的,需要手动释放,这点我也是在web开发者工具中的Audits体验检测中被提示的,两者区别其实和web的区别没有区别,前者可以执行多次,后者一次就完了。如果对于我上面说的场景,如果用前者,你要去手动释放它,比如将定时器绑定到data的变量中,然后clear它。对于后者就不必了,因为本就是只用一次的,但对于用多次的场景,一定要去手动回收。

3.第三个问题

使用web-view标签,详情可以看微信官方文档,很强大的工具,不要理解成src跳转后就直接是网站了,不再是在小程序里,其实还是在小程序里,只是小程序的页面被这个src所指向的路径所占满了,按返回仍然能返回之前浏览的小程序页面,分享这个页面也仍然还是在小程序里,所以有些在web后台使用富文本上传的那种其实很没必要这种成本,公众号的文章效果很难达到的,直接使用公众号写文章资讯然后直接跳转过去是个很直接的方法。

4.第四个问题如何上线:

首先后台要是认证备案超过24小时的,并且协议是https的地址,认证备案没办法大多数只能去老老实实备案(遵纪守法),注意这样认证得到的是http协议的,我们要加个ssl证书,传统方法有点麻烦,有个比较好的方法推荐,github上搜索acme,是个比较好的脚本,可以自动更新证书,两三个命令就自动配置证书。下面是地址(比手动方便的多)

http://www.acme.sh/

这里我是使用nginx,由于https采用默认端口是443,而http是80,我们让80的所有资源跳转443,具体可以百度,然后将后台启动在别的端口,将nginx监听的443端口下的location/的proxy代理项改为你后台的端口,这样小程序就能调用该域名了,然后记住要去微信公众平台设置你的小程序request域名,必须备案超过24小时才可合法。设置完成后即可体验,最后就是提交微信官方审核上线了。

如果还要部署后台也简单,在监听的端口,再开一个location项,然后把后台的静态文件反向代理来解决跨域问题,就可以访问后台了。

 

总结:就像刚学C语言一样,坑是一直有的,但是不能被坑坑再里面,虽然打算考研,但是偶尔编程relax一下自己发散一下思维感觉也还不错。

这篇关于微信小程序开发遇到的坑:(如何把转发的卡片返回首页,setInterval和settimeout的区别,跳转关联公众号文章,如何上线)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824864

相关文章

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd