YOHO!前端js的功能封装包,主要用于在活动页面中,对主要功能的封装。
封装实现的功能
1. 用户相关
1. 获取用户登录uid
2. 验证登录
3. 运行环境相关
1. 区分当前环境h5、pc、小程序还是app
2. 不同环境下页面跳转执行
3. 不同环境下的回退按钮实现
4. 不同环境下的登录功能统一实现
5. 获取当前环境信息
3. 分享相关
1. 微信分享到qq 微信好友 微信朋友圈 微博
2. 微信验签方法提供
使用说明
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)