【声明】关于六久阁私自出售我公司dedecms小程序插件声明
发布时间:2021-12-10 17:26:17查看:0小程序配置流程 
小程序配置流程,首先需要你有小程序账号,然后才能获取小程序的appid和appsecret,以百度小程序为例:

一、先注册百度(微信或头条)小程序账号

(1)登录百度小程序官网https://smartprogram.baidu.com注册小程序账号,申请过程不再赘述
(2)申请过后登陆你的小程序账号,进入“开发管理”----“设置”----切换到“开发设置”如图,保存自己的appid、appkey以及appsecret,特别是appsecret只出现一次,一定要保存好

然后在“开发设置”向下有个“服务器域名”,全部填写自己要对接的网站的域名,另外下边的webview可以根据自己实际情况考虑要不要配置。

二、小程序demo配置

必须先安装过小程序插件之后才可以配置demo

1、app.js和app.json配置
(1)下载百度小程序开发者工具,安装工具,下载地址:https://smartprogram.baidu.com/docs/develop/devtools/history/
(2)打开开发者工具,导入我的demo
(3)进入小程序之后,点击右上角“项目信息”--->修改appid为您的小程序appid
(2)打开app.json、app.js把我的信息都改成你们的,特别是app.js中的safecode(暂时填写appsecret),aid暂时默认,为后期准备


(3)设置首页的toplist
toplist为批量请求接口,一般首页只需要配置这一项即可正常预览小程序,配置方法打开/pages/index/index.js



配置好这些之后,一定要先清除缓存重新编译一下,一般首页就会出现内容了

(4)小程序前端调用简介
/pages/下的每个文件夹代表一个独立的页面,其中swan是写div的,css是写css的,js是读取接口的,js中读取的接口必须用setData赋值一下,前端才可以调用,以上面的toplist获取的news为例:

前端调用代码:
  1. <block s-for="{{ news }}" s-for-index="n"
  2.     <view>{{item.title}}--{{item.id}}</view> 
  3. </block> 
s-for="{{ 你要循环的参数 }}",s-for-index="名字随便"类似于索引,所有的循环都是默认的{{item.对应字段}}的方式调用,必须:{{item.title}}  {{item.scode}} {{item.keywords}}
  1. <navigator url='/pages/show/show?id={{item.id}}'
  2. {{item.title}} 
  3. </navigato> 
navigator和html的a标签功能一样,代表超链接,url="/pages/show/show?id={{item.id}}"表示链接指向为show/show页面即内容页,需要传递的参数是id,同理 列表页为:/pages/list/list?scode={{item.scode}}

(5)小程序菜单导航设置
app.js中有个自定义路由设置,这里可以设置每个栏目默认的列表样式
  1. // 自定义路由 
  2. listtype:3,                 //默认全局列表样式(左图右文) 
  3. listpath:'/pages/list/list',//默认列表页路径 
  4. diylist : [ 
  5.         {'scode': 1,'url''','listtype': 3}, //url为空表示默认列表 
  6.         {'scode': 5,'url''','listtype': 2}, //列表3图 
  7.         {'scode': 8,'url''','listtype': 4}, //列表3图 
  8.         {'scode': 10,'url''/pages/formguide/formguide','listtype': 4},//自定义url 
  9. ], 
这样list页面会自动帮你判断是什么格式
单页面是/pages/page/page,
列表页是/pages/list/list,
listtype是表示列表类型,默认6种,
1:文字列表,
2:两图列表,
3:左图右文,
4:三图列表,
5:标题+摘要,
6:标题+三图

右上角的菜单导航默认读取所有顶级栏目(每个页面的onload里边都有这个代码):
  1. var menulist = common.getmenu(0);//获取所有一级栏目 0表示读取顶级栏目,可以改成你的typeid,表示调用对应typeid下的子栏目
默认的getmenu方法是自动读取顶级栏目的,如果感觉不太方便可以使用第二种getmenu方法:
  1. function getmenu0() { 
  2.     var menulist = [ 
  3.         {'name''品牌介绍','scode''1','url''/pages/page/page','listtype': 5}, 
  4.         {'name''课程介绍','scode''3','url''/pages/list/list','listtype': 5}, 
  5.         {'name''风采展示','scode''2','url''/pages/list/list','listtype': 4}, 
  6.         {'name''新闻中心','scode''5','url''/pages/list/list','listtype': 3}, 
  7.         {'name''联系我们','scode''7','url''/pages/page/page','listtype': 3}, 
  8.     ]; 
  9.     return menulist; 
第二种getmenu方法,直接把导航和url固定死,更容易理解,根据自己需要调整。


(6)列表页配置
/pages/list/list是列表页,全站通用页面,需要传递scode和listtype两个参数
listtype默认有6个样式(具体参考:template/list.swan)
list_1:文章列表
list_2:图片列表(两图)
list_3:图文列表(左图右文)
list_4:图片列表(三图)
list_5:文章列表(标题+描述,默认的就是这个)
list_6:多图列表(标题+三图,适合文章中有多个图片的)
list_*...你可以根据自己情况任意添加或者修改
(首页的2图或者3图列表是直接用div写的,需要调整的话直接去修改css即可)


(8)配置单页面
pages/page/page是个单页面,对应网站后台设置的封面栏目,一般用作关于我们、联系我们之类的页面(注意:必须是后台设置了封面的栏目)
同时为了兼容有些网站单页面和列表页混合的情况,page页面既支持单页面,也支持列表页,但是建议以单页面为主。

(9)其他页面配置
search搜索页面,map地图页面(目前暂无),header公共头部,footer公共底部,show内容展示页。
list和show是公共列表和公共内容页面不允许设置tababr(因为设置了tabbar就不允许传参了,只针对有tabbar的),如果需要新增页面,可以复制对应的页面,改个名字即可,另外别忘了在app.json最上面加一下你刚才创建的页面,然后重新编译即可

(10)自定义表单设置
formguide/formguide页面,对应前端的调整:


对应js端的调


如果点击还是没有反应,那么打开开发者工具最上面的调试器---network---XHR,刷新或者重新提交一下,然后找到form请求url,点击进入,然后切换到preview,看看提示什么,然后根据提示再做处理

三、常用参数和方法解释


常用参数和函数
scode:网站栏目ID
listtype:列表类型,内置5种,可以去template/list.swan里边添加
swan.getStorageSync('system')调用网站配置缓存,
swan.getStorageSync('categorys')调用全站栏目缓存
oswan.getStorageSync('siteinfo')调用站点信息

调用幻灯片:
  1. app.get_slide(1,10).then(function(data){ //1为幻灯片id,num为数量
  2.             var banner = data.data; 
  3.             that.setData({ 
  4.                 banner: banner //赋值给banner,前端循环banner即可
  5.             }) 
  6.         }); 

utils/common.js内置常用函数解释:
common.js调用方式为在每个页面最上面引入:
  1. var common = require('../../utils/common.js'); 
然后每个函数调用方式为:common.函数名,例如:common.get_catlist(),common.callphone()
common.get_menu(typeid) 调用typeid的子栏目,typied为0时调用全部栏目
common.callphone() 拨打电话
common.get_catlist(typeid):调用typeid的兄弟栏目或者子栏目(自动判断)
common.get_curtypeid(typeid,typeid):判断typeid或子栏目高亮
common.get_childid(typeid,1)获取typeid的子栏目,1表示是否包含自己
common.get_brotherid(typeid,1)获取typeid的兄弟栏目,1表示是否包含自己
common.backhome():全局通用返回首页代码

utils/util.js内置常用函数解释:
util.js调用方式为在每个页面最上面引入:
  1. var util = require('../../utils/util.js'); 
util.formatTime():格式化时间戳,如:util.formatTime()util.formatTime(news[i].pubdate, 'Y-M-D')
util.escape2Html(str):转换html危险字符
util.removeHTML(str):去掉html标签
util.checkPhone(phone,isempty = 1),判断电话号码是否正确,后边的1表示不能为空,0表示允许为空
util.checkEmail(email,0) 判断邮箱格式是否正确,后边的01表示可以为空,1表示不能为空
util.isEmpty(str) 判断是否为空

util.request.js是对api请求的封装,没有基础不建议使用修改

app.js内置的二个promise方法:

app.get_cat().then()  promise方式调用栏目缓存
app.get_sys().then()  promise方式调用设置缓存
app.get_siteinfo.then() promise方式调用站点信息
app.get_list().then()  promise方式快速某个栏目列表(一般不用这个)
app.get_slide().then() promise方式获取幻灯片

promise方式的好处就是,把接口的异步请求变成同步,也就是接口不返回信息,不往下执行,可以有效避免下边调用这个接口信息可能出现的错误,减少白评率

如何修改链接所跳转的页面
打开对应的swan页面,每个点击事件都是通过bindtap触发的,所以想修改对应事件,首页去swan找到对应的bindtap事件,比如查看新闻的 bindtap='show_detail'

意思就是:点击触发show_detail方法,然后去对应的js找到show_detail方法:


如果想让show_detail打开其他页面 只需要修改里边的swan.navigateTo里边的对应路径即可,不过最好是复制一份show_detail改成show_detail2,然后在2里边修改对应的路径,然后前端的bindtap改成bindtap="show_detail2"即可。

(2)如何设置web化标题即SEO配置
默认自动给你们设置好了,只需要通过web户预览然后嗯:F12或者右键点击审查元素,在代码head里边可以查看效果。
默认栏目seo为:
title:自定义栏目标题+小程序名称
keywords:后台配置通用关键词/自定义栏目关键词
description:后台配置通用描述/自定义栏目描述
releaseDate: 后台设置时间
image: 默认调用banner

内容页默认SEO:
title:文章名称+栏目名称+小程序名称
keywords:文章关键词
description:文章描述
releaseDate: 后台设置时间
image: 默认调用banner,可以改成调用文章缩略图images:[content.litpic]
articleTitle文章标题

(3)小程序如何url适配
url适配就是为了让小程序的页面和H5页面一一对应起来
以我的网站为例:
首页:https://dede.tengcee.com/$ => pages/index/index
服务项目:https://dede.tengcee.com/a/fuwuxiangmu/$ => pages/service/service
案例:https://dede.tengcee.com/a/kehuanli/$ => pages/case/case

普通列表:https://dede.tengcee.com/a/xinwenzixun/xingyezixun/list_21_2.html => pages/list/list?typeid=21
适配写法:https://dede.tengcee.com/a/xinwenzixun/xingyezixun/list_([^\.]+)_([^\.]+).html => pages/list/list?typeid=${1}&page=${2}

内容页:https://dede.tengcee.com/a/xinwenzixun/xingyezixun/20190707/74.html =>pages/show/show?id=74
适配写法:https://dede.tengcee.com/a/xinwenzixun/xingyezixun/([^\.]+)/([^\.]+).html =>pages/show/show?id=${1}
(注意:我这个内容页静态化路径中有个时间,如果你们自己定义了,可以不按照这个,比如下边)
https://dede.tengcee.com/news/74.html =>pages/show/show?id=74
适配写法:https://dede.tengcee.com/news/([^\.]+).html =>pages/show/show?id=${1}


单页面:https://dede.tengcee.com/aboutus/$  =>pages/page/page?typeid=7

如果没用到正则,即完全适配的时候需要加$符号,${1}表示对应前面第一个()小括号里边的内容,同理${2}对应第二个

(4)小程序资源提交提交接口(正在开发中):
百度提交:您的网址/api/api.php?aid=1 
微信提交:您的网址/api/weixin.php?aid=1 
(手动提交使用前记得后台小程序配置开启debug,否则无法访问)

更多常见问题整理中.....

为了防止六久阁抄袭我的文章,以上代码只提供截图,有问题请咨询QQ:2863868475,拒绝抄袭,拒绝无耻


版权声明:本文为原创文章,未经允许不得转载。https://doc.tengcee.com/pbootcms/pbpeizhi/199.html
上一篇:第一页
下一篇:最后一页

服务热线

15137100750

我知道你不会打


但是我还是要写


你懂得!

微信二维码

QQ群二维码