更新基础库到 2.x - 友好速搭主题

友好速搭

开发文档 > 主题开发 > 主题开发 > 升级主题 > 更新基础库到 2.x
主题开发
快速入门 修改主题 制作主题 销售主题 升级主题

更新基础库到 2.x

文件更新:

  • Layout/theme.html
  • Layout/mobile.html
  • Snippets/share_info.html

功能更新:

  • 小程序:
    • 新增登录注册支持;
    • 新增支付支持;
  • 提交订单页:
    • 新增「发票」支持;
    • 新增收货地址「身份证」支持;
  • 商品详情页:
    • 新增「商品收藏」支持;
  • 文章详情页:
    • 新增「收藏文章」支持;
  • 个人中心:
    • 新增「我的收藏」支持;
    • 新增收货地址「身份证」支持;
  • 新增 APM 支持。

相关说明:

  • 修改位置可参考「藤煤竹」主题相关代码;
  • 2.x 会根基客户反馈和开发测试情况分页面和模块逐渐过渡到 3.0;
  • 2.x 分移动端和 PC 端,3.0 不再做分离,统一做成「响应式」,只需要迭代一套代码;
  • 部分 JS 引入需设置crossorigin属性。

修改 Layout/theme.html

升级

  • yhsd-desktop-2.4.0.min.css
  • jweixin-1.5.0.js(若有)
  • jssdk-1.2.0.min.js
  • yhsd-desktop-2.4.0.min.js
<script src="{{ 'jssdk-1.2.0.min.js' | global_asset_url }}" crossorigin></script>
<script src="{{ 'yhsd-desktop-2.4.0.min.js' | global_asset_url }}" crossorigin></script>

添加 Resource Hints - preconnect

<!-- 一般放 <meta charset="utf-8"> 下面 -->
<link rel="preconnect" href="{{ cdn_host }}">
<link rel="preconnect" href="//res.wx.qq.com">

添加 JS 引用

  • jweixin-1.5.0.js(若无)
  • reporter-0.1.0.js
<script src="//res.wx.qq.com/open/js/jweixin-1.5.0.js"></script>
<script src="{{ 'reporter-0.1.0.js' | global_asset_url }}" crossorigin></script>
<!-- 一般放 jssdk-1.2.0.min.js 上面 -->

修改 Layout/mobile.html

升级

  • yhsd-mobi-2.3.0.min.css
  • jweixin-1.5.0.js(若有)
  • jssdk-1.2.0.min.js
  • yhsd-mobi-2.3.0.min.js
<script src="{{ 'jssdk-1.2.0.min.js' | global_asset_url }}" crossorigin></script>
<script src="{{ 'yhsd-mobi-2.3.0.min.js' | global_asset_url }}" crossorigin></script>

添加 Resource Hints - preconnect

<!-- 一般放 <meta charset="utf-8"> 下面 -->
<link rel="preconnect" href="{{ cdn_host }}">
<link rel="preconnect" href="//res.wx.qq.com">

添加 JS 引用

  • jweixin-1.5.0.js(若无)
  • reporter-0.1.0.js
<script src="//res.wx.qq.com/open/js/jweixin-1.5.0.js"></script>
<script src="{{ 'reporter-0.1.0.js' | global_asset_url }}" crossorigin></script>
<!-- 一般放 jssdk-1.2.0.min.js 上面 -->

更新 Snippets/share_info.html

全部内容替换成以下代码:

{% capture share_include_type %}{{ share_info }}{% endcapture %}

<!-- 社交分享信息 -->
{% if share_image.image_id %}
  {% assign share_img_url = share_image | image_url %}
{% elsif share_image.src and share_image.size >= 1 %}
  {% assign share_img_url = share_image.src %}
{% else %}
  {% assign share_img_url = 'share_img' | asset_url %}
{% endif %}

{% if share_include_type == 'head' %}
  <meta property="og:title" content="{{ page_title }}" />
  <meta property="og:description" content="{{ page_desc }}" />
  <meta property="og:image" content="{{ share_img_url }}" />
  <script>
    (function () {
      var hasWxSDK = ({{ shop.enable_weixin_sdk }}) || false

      if (hasWxSDK && window.wx && /micromessenger/i.test(window.navigator.userAgent)) {
        window.yhsdWxShare = {
          info: {
            title: '{{ page_title }}',
            desc: '{{ page_desc | strip_newlines }}',
            link: location.href,
            imgUrl: 'https:{{ share_img_url }}',
            success: function () {},
            cancel: function () {}
          },
          setInfo: function (oInfo) {
            this.info = oInfo
          },
          init: function () {
            yhsd.ready(function () {
              $.ajax({
                url: '/api/v1/third_api/weixin_signature',
                method: 'GET',
                dataType: 'json',
                data: {
                  url: location.href
                }
              }).done(function(res) {
                if (res.code === 200) {
                  var fnShare = function (type) {
                    // 留给后面做特殊处理
                    return yhsdWxShare.info
                  }
                  wx.config({
                    debug: false,
                    appId: res.config.appid,
                    timestamp: res.config.timestamp,
                    nonceStr: res.config.noncestr,
                    signature: res.config.signature,
                    jsApiList: [
                      "onMenuShareTimeline",
                      "onMenuShareAppMessage",
                      "onMenuShareQQ",
                      "onMenuShareQZone"
                    ]
                  })
                  wx.ready(function () {
                    wx.onMenuShareTimeline(fnShare("timeline"))
                    wx.onMenuShareAppMessage(fnShare("frends"))
                    wx.onMenuShareQQ(fnShare("qq"))
                    wx.onMenuShareQZone(fnShare("qzone"))
                    // wx.checkJsApi({
                    //    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone'], // 需要检测的 JS 接口列表
                    //    success: function(res) {
                    //      // alert(JSON.stringify(res))
                    //      // 以键值对的形式返回,可用的 api 值 true,不可用为 false
                    //      // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                    //   }
                    // })
                  })
                  // wx.error(function(res){
                  //   alert(JSON.stringify(res))
                  //   // config 信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的 debug 模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
                  // })
                }
              });
            });
          }
        }
        window.yhsdWxShare.init()
      }
    })()
  </script>
{% else %}
  {% if share_title == null or share_title == '' %}
    {% assign share_title = page_title %}
  {% endif %}

  {% if share_desc == null or share_desc == '' %}
    {% assign share_desc = page_desc %}
  {% endif %}
{% endif %}
<!-- End 社交分享信息 -->

简单测试用例

  • 抽查页面,JS 代码运行不报错;
  • 登录和注册流程正常;
  • 免登陆购买流程正常;
  • 无登录购买流程正常(添加购物车 > 提交购物车 > 跳转登录 > 登录后跳转提交订单页 > 提交订单成功 > 支付成功 > 订单详情页);
  • 提交订单页:
    • 「发票」功能正常;
    • 收货地址「身份证」功能正常;
  • 商品详情页:
    • 「商品收藏」功能正常;
  • 文章详情页:
    • 「收藏文章」功能正常;
  • 个人中心:
    • 「我的收藏」功能正常;
    • 收货地址「身份证」功能正常。
免费领取15天试用
立即注册
联系客服
微信咨询
微信二维码

领取免费试用资格

姓名 *

电话 *

公司名称

所在地区

意向产品

提交

提交成功

你好, XXX女士/先生 ,你的需求已提交成功,后续会有专门的客户经理与你电话联系。谢谢!