Y

yoho-activity-sdk

YOHO!前端js的功能封装包,主要用于在活动页面中,对主要功能的封装。

封装实现的功能

1. 用户相关

1. 获取登陆用户信息
2. 获取登陆用户收藏信息

3. 运行环境相关

1. 区分当前环境h5、pc、小程序还是app
2. 不同环境下页面跳转执行
3. 不同环境下的回退按钮实现
4. 不同环境下的登录功能统一实现 
5. 获取当前环境信息   

3. 分享相关

1. 微信分享到qq 微信好友 微信朋友圈 微博 
2. 微信验签方法提供   

4. 支持其他功能

1. 图片懒加载(webp格式的支持,也包括图片url参数转换拼接)
2. 支持红包领取
3. 支持优惠券领取
4. 支持定制化楼层配置

使用说明

activity-sdk依赖wx-js-sdk,无论登陆还是页面跳转还是分享等等都依赖wx-js-sdk

所以在加载activity-sdk之前先加载wx-js-sdk,之后再调用activity-sdk的方法

可以直接import也可以define();

如果是在html页面引入window.yo_sdk可以获取到所有的api

api说明

auth:

类型:function

描述:在加载完sdk的时候会主动搜索当前html上是否有class命名为auth的标签,如果有则点击 该标签的时候就会判断当前是否登录如果没有登录则自动判断跳转登录页

用法:

<div class="auth">aaa</div>
<script>
    window.yo_sdk.auth();
</script>

goLogin:

类型:function

描述:执行登录方法,已经兼容h5 pc 小程序 app 4个端,直接调用就可以登录

用法:window.yo_sdk.goLogin()

env:

类型:string

描述:获取当前环境,会获取到'h5','pc','miniprogram','app'

用法:let env = window.yo_sdk.env

getUser:

类型:function

描述:获取当前用户uid,sessionKey,sessionType,appVersion以Object类型返回,如果没有用户则该uid值为0

用法:

//执行返回的是一个Promise对象
window.yo_sdk.getUser().
    then(function(user){
        console.log(user);
        //返回 {uid:1,sessionType:'',sessionKey:'',appVersion:''}
    })

link:

类型:function

描述:页面跳转

用法:

//跳转到商品详情页data-id='${skn}'
<div data-type='product' data-id='51951762'onClick="fun(event)">product</div>

//跳转到商铺首页data-id:商铺id,data-name商铺名
<div data-type='brand' data-id='468' data-name="FANTASTIC PLANET怪诞星球" onClick="fun(event)">brand</div>

//跳转到其他页面data-url:跳转的页面地址
<div data-type='other'  data-url='https://feature.yoho.cn/0917/BOY/index.html?openby:yohobuy={"action":"go.h5","params":{"title":"新品节主会场/BOY","url":"https://feature.yoho.cn/0917/BOY/index.html","share":"\/operations\/api\/v5\/webshare\/getShare","shareparam":{"share_id":"5711"},"param":{"share_id":"5711"}}}' onClick="fun(event)">other</div>
<script src="../build/sdk.js"></script>
<script>
   function fun(event){
       /**
        * aaaaaaaa
        */
      window.yo_sdk.link(event);
   }
</script>

goBack:

类型:function

描述:回退方法,支持多端回退包括h5和小程序web-view嵌套回退

用法: <button onclick="window.yo_sdk.goBack"></button>

wxSignature:

类型 function

描述:微信验签方法提供

参数:类型function,非必传

用法:

  function callback(){/*** 回调执行 ***/}
  window.yo_sdk.wxSignature(callback);

wxShare

类型:function

描述:微信分享方法

参数:类型Object,必传

用法:微信分享只需要直接调用就可以执行,该方法里面已经封装过验签方法无需验签

let shareData = {
        title: '国潮崛起年,中西碰撞博出位!',
        imgUrl: 'https://img01.yohoboys.com/o_1cnilugbs15ajak1gfo1d2h1p348.png?imageView2/1/w/200/h/200',
        desc: '这里有一份中西潮流榜单,请收好!',
        link: location.href,
        success: function () {
            alert('1123')
        }
    };
 await window.yo_sdk.wxShare(shareData)

getQueryObj

类型:function

描述:获取url参数返回对象

参数:类型String,非必传(默认不穿会返回当前url的参数对象)

用法:

let url = 'http://wwww.baidu.com?a=111&b=222'
let result = window.yo_sdk.getQueryObj(url)
//result的值为{a:'111',b='222'}

invokeMethod

类型:function

描述:调用app对外的方法

参数:类型Object,必传

用法:

let obj={
    success:function(){} //成功回调
    fail:function(){} //失败回调
    method:'',   //app的方法名
    arguments:{} //参数
}
window.yo_sdk.invokeMethod(obj)