【声明】关于六久阁私自出售我公司dedecms小程序插件声明
发布时间:2021-12-12 09:43:32查看:0修复历史版本web化设置错误的问题 
由于之前的版本没有处理web化关键词设置这一块,所以造成之前的版本web化之后没有出现关键词描述等情况,所以专门优化了一下

解决方法:

1、找到util/util.js添加方法:
  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添加一行
  1. formatStampTime:formatStampTime, 

2、找到app.js添加方法get_siteinfo,该方法主要是为了获取网站后台设置的关键字,描述等信息
  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方法里边添加一行:
  1. app.get_siteinfo().then(function (data) { })//获取站点信息 
这句话的意思是每个页面都会自动调用站点信息,优先通过缓存调用,缓存不存在则读取接口,保证站点信息可以读取到

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

(1)首页index.js
  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
  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方法里边了

  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))
  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:
  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();
  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
  1. that.getTagArcList(tag,page);//获取tag的文章列表 
onshow添加调用:that.seo(tag);
  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.     }, 





版权声明:本文为原创文章,未经允许不得转载。https://doc.tengcee.com/pbootcms/pbquestion/214.html

服务热线

15137100750

我知道你不会打


但是我还是要写


你懂得!

微信二维码

QQ群二维码