微信小程序开发遇到的坑:(如何把转发的卡片返回首页,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

相关文章

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Spring中@RestController和@Controller的使用及区别

《Spring中@RestController和@Controller的使用及区别》:本文主要介绍Spring中@RestController和@Controller的使用及区别,具有很好的参考价... 目录Spring中@RestController和@Controller使用及区别1. 基本定义2. 使

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT