常见问题

当前位置:首页>新闻资讯>常见问题
全部 24 小程序教程 7 API教程 13 常见问题 4

修复历史版本web化设置错误的问题

时间:2023-09-09   访问量:1008


由于之前的版本没有处理web化关键词设置这一块,所以造成之前的版本web化之后没有出现关键词描述等情况,所以专门优化了一下

解决方法:

1、找到util/util.js添加方法:

code腾石建站

  1. //时间戳转换 

  2. function formatStampTime(number, format) { 

  3.     var formateArr = ['Y''M''D''h''m''s']; 

  4.     var returnArr = []; 

  5.     number = number.length == 11 ? number*1000 : number; 

  6.     var date = new Date(number); 

  7.     returnArr.push(date.getFullYear()); 

  8.     returnArr.push(formatNumber(date.getMonth() + 1)); 

  9.     returnArr.push(formatNumber(date.getDate())); 

  10.  

  11.     returnArr.push(formatNumber(date.getHours())); 

  12.     returnArr.push(formatNumber(date.getMinutes())); 

  13.     returnArr.push(formatNumber(date.getSeconds())); 

  14.  

  15.     for (var i in returnArr) { 

  16.         format = format.replace(formateArr[i], returnArr[i]); 

  17.     } 

  18.     return format; 

然后最下边的module.exports添加一行

code腾石建站

  1. formatStampTime:formatStampTime, 


2、找到app.js添加方法get_siteinfo,该方法主要是为了获取网站后台设置的关键字,描述等信息

code腾石建站

  1. /** 

  2.      * promise方式获取系统设置缓存(推荐使用) 

  3.      * 获取之前会先判断缓存是否存在或者是否需要更新,否则直接读取缓存,减少请求 

  4.      */ 

  5.     get_siteinfo(e) { 

  6.         var that = this

  7.         var siteinfo = swan.getStorageSync('siteinfo'

  8.         return new Promise(function (resolve, reject) { 

  9.             if (siteinfo != '' || siteinfo.length != 0) { 

  10.                 resolve(siteinfo); 

  11.             } else { 

  12.                 swan.request({ 

  13.                     url: that.globalData.api + "site"

  14.                     data: { 

  15.                         aid: that.globalData.aid 

  16.                     }, 

  17.                     method: 'POST'

  18.                     header: { 

  19.                         'content-type''application/x-www-form-urlencoded'// 默认值 

  20.                         'x-safecode': that.globalData.safecode 

  21.                     }, 

  22.                     success: function (res) { 

  23.                         console.log(res) 

  24.                         let siteinfo = res.data.data; 

  25.                         try { 

  26.                             swan.setStorageSync('siteinfo', siteinfo) 

  27.                         } catch (e) { 

  28.                         } 

  29.                         resolve(siteinfo); 

  30.                         console.log("promise读取siteinfo"

  31.                     } 

  32.                 }) 

  33.             } 

  34.         }) 

  35.     }, 

3、在所有页面的onLoad方法里边添加一行:

code腾石建站

  1. app.get_siteinfo().then(function (data) { })//获取站点信息 

这句话的意思是每个页面都会自动调用站点信息,优先通过缓存调用,缓存不存在则读取接口,保证站点信息可以读取到

4、设置每个页面的SEO方法

(1)首页index.js

code腾石建站

  1. seo(e) { 

  2.        var that = this

  3.        var siteinfo = swan.getStorageSync('siteinfo'); //系统站点配置 

  4.        swan.setPageInfo && swan.setPageInfo({ 

  5.            title:  app.globalData.appname, //小程序名称

  6.            keywords: siteinfo.keywords, //后台设置的关键词

  7.            description: siteinfo.description, //后台设置的描述

  8.            releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  9.            success: function () { 

  10.                console.log('setPageInfo success'); 

  11.            }, 

  12.            fail: function (err) { 

  13.                console.log('setPageInfo fail', err); 

  14.            } 

  15.        }) 

  16.    }, 


(2)列表页list.js和pages.js

code腾石建站

  1. seo(scode) { 

  2.         var that = this

  3.         var scode = scode || that.data.scode; 

  4.         var CATEGORYS = swan.getStorageSync('categorys'//调用栏目缓存 

  5.         var siteinfo = swan.getStorageSync('siteinfo'); //系统站点配置 

  6.  

  7.         let seotitle = CATEGORYS[scode]['title']; //栏目标题

  8.         let seokeywords = CATEGORYS[scode]['keywords']; //栏目关键词

  9.         let seodescription = CATEGORYS[scode]['description']; //栏目描述

  10.         if (seotitle == "") { 

  11.             seotitle = CATEGORYS[scode]['name'];//没有设置调用栏目名称 

  12.         } 

  13.         if (seokeywords == "") { 

  14.             seokeywords = siteinfo.keywords;//如果没有设置则调用全站关键词 

  15.         } 

  16.         if (seodescription == "") { 

  17.             seodescription = siteinfo.description;//如果没有设置则调用全站描述 

  18.         } 

  19.         swan.setPageInfo && swan.setPageInfo({ 

  20.             title: seotitle + " - " + app.globalData.appname, 

  21.             keywords: seokeywords, 

  22.             description: seodescription, 

  23.             releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  24.             success: function () { 

  25.                 console.log('setPageInfo success'); 

  26.             }, 

  27.             fail: function (err) { 

  28.                 console.log('setPageInfo fail', err); 

  29.             } 

  30.         }) 

  31.     }, 

前面的调用方式为:
that.seo(scode);//需要传递栏目id

(3)show.js,show页面的seo方法是存到了getInfo方法里边了

code腾石建站

  1. //设置WEB化SEO标题 

  2.                 var image = content.ico ? content.ico : '/images/share.jpg'

  3.                 swan.setPageInfo && swan.setPageInfo({ 

  4.                     title: content.title + " - " + CATEGORYS[scode]['name'] + " - " + app.globalData.appname, //标题+栏目+小程序名称

  5.                     keywords: content.keywords, //文章关键词

  6.                     description: content.description, //文章描述

  7.                     releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  8.                     image: [image], 

  9.                     articleTitle: content.title, 

  10.                     success: function () { 

  11.                         console.log('setPageInfo success'); 

  12.                     }, 

  13.                     fail: function (err) { 

  14.                         console.log('setPageInfo fail', err); 

  15.                     } 

  16.                 }) 


(4)其他页面,search,tag  formguide这些都可以固定死了
search.js:(onshow里边调用方式that.seo(q))

code腾石建站

  1. seo(q) { 

  2.         var that = this

  3.         var siteinfo = swan.getStorageSync('siteinfo'); //系统站点配置 

  4.         swan.setPageInfo && swan.setPageInfo({ 

  5.             title:  q + "-" + app.globalData.appname, //关键词+小程序名称

  6.             keywords: q, //关键词

  7.             description: q, //关键词

  8.             releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  9.             success: function () { 

  10.                 console.log('setPageInfo success'); 

  11.             }, 

  12.             fail: function (err) { 

  13.                 console.log('setPageInfo fail', err); 

  14.             } 

  15.         }) 

  16.     }, 


formguide.js:

code腾石建站

  1. //SEO标题(通过web化查看) 

  2.         swan.setPageInfo && swan.setPageInfo({ 

  3.             title: '自定义表单 - ' + app.globalData.appname, 

  4.             keywords: app.globalData.appname, 

  5.             description: app.globalData.appname, 

  6.             releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  7.             success: function () { 

  8.                 console.log('页面基础信息设置完成'); 

  9.             }, 

  10.             fail: function () { 

  11.                 console.log("失败"

  12.             } 


tag/index.js(首先在onshow里边添加调用:that.seo();

code腾石建站

  1. /** 

  2.     * 百度小程序的SEO设置,通过web化页面的审查元素(F12)查看 

  3.     */ 

  4.    seo(e) { 

  5.        var that = this

  6.        var siteinfo = swan.getStorageSync('siteinfo'); //系统站点配置 

  7.        swan.setPageInfo && swan.setPageInfo({ 

  8.            title:  "tags -" + app.globalData.appname, 

  9.            keywords: "tags"

  10.            description: "tags"

  11.            releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  12.            success: function () { 

  13.                console.log('setPageInfo success'); 

  14.            }, 

  15.            fail: function (err) { 

  16.                console.log('setPageInfo fail', err); 

  17.            } 

  18.        }) 

  19.    }, 


tag/tag.js

code腾石建站

  1. that.getTagArcList(tag,page);//获取tag的文章列表 

onshow添加调用:that.seo(tag);

code腾石建站

  1. /** 

  2.      * 百度小程序的SEO设置,通过web化页面的审查元素(F12)查看 

  3.      */ 

  4.     seo(tag) { 

  5.         var that = this

  6.         var siteinfo = swan.getStorageSync('siteinfo'); //系统站点配置 

  7.         swan.setPageInfo && swan.setPageInfo({ 

  8.             title:  tag + "-" + app.globalData.appname, 

  9.             keywords: tag, 

  10.             description: tag, 

  11.             releaseDate: util.formatStampTime(new Date(), 'Y-M-D h:m:s'), 

  12.             success: function () { 

  13.                 console.log('setPageInfo success'); 

  14.             }, 

  15.             fail: function (err) { 

  16.                 console.log('setPageInfo fail', err); 

  17.             } 

  18.         }) 

  19.     }, 


上一篇:pbootcms小程序插件在ios下时间错误的处理

下一篇:pbootcms小程序资源提交接口上线

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部