提交 f1975ebb 作者: 王进

暴露上报注册和登录接口

上级 155b3925
......@@ -4,6 +4,7 @@
* @time: 2018-09-19
*/
class WechatSDK {
private sdkVersion:string = '1.2'
public constructor() {
this.sdkInit()
}
......@@ -11,7 +12,7 @@ class WechatSDK {
const _selt = this
_selt.ReportParams.productCode = _selt.sdkParams.product_code = SDKConfig.productCode
_selt.sdkParams.appid = SDKConfig.appid
_selt.sdkParams.version = SDKConfig.sdkVersion
_selt.sdkParams.version = _selt.sdkVersion
const options = _selt.getOptionsInfo() // 返回参数对象
_selt.ReportParams.from = options.from || 0
_selt.ReportParams.tag = options.tag || 0
......@@ -47,9 +48,7 @@ class WechatSDK {
_selt.sdkParams.pay_channel = res.data.default_pay_channel
_selt.getAuthorize = res.data.weixin_from
_selt.sdkLogin(LoginCallBack)
_selt.ReportData({ // 上报激活
action: 'activation'
})
_selt.ActiReport() // 上报激活
}, err => { console.log(err) })
}
private sdkLogin(LoginCallBack) {
......@@ -60,15 +59,8 @@ class WechatSDK {
.then(res => {
if (res.code == 0) {
// 根据SDK返回用户状态来判断用户是否注册
const type = res.data.action == 'login' ? 'login' : 'register'
_selt.sdkParams.token = res.data.token // 记录用户toekn
_selt.ReportParams.userId = res.data.uid // 记录用户ID
if( type == 'register') {
_selt.ReportData({ action: 'register' }) // 上报注册
}
// 所有用户(包括注册)也需要上报登录
_selt.ReportData({ action: 'login' }) // 上报登录
LoginCallBack(_selt.deepCopy({}, res.data, {
os: _selt.sdkParams.os, // 返回系统类型IOS或者android
session_key: _selt.sdkParams.session_key // 返回session_key
......@@ -329,6 +321,18 @@ class WechatSDK {
console.log("##SDK激活上报参数", portData)
return this.request(link, portData)
}
// 上报激活
public ActiReport() {
this.ReportData({ action: 'activation' })
}
// 上报注册
public RegisterReport() {
this.ReportData({ action: 'register' })
}
// 上报登录
public LoginReport() {
this.ReportData({ action: 'login' })
}
// 数据上报接口,外部调用,参数中必须含有action值
public ReportData(portData) {
const that = this
......@@ -405,41 +409,73 @@ class WechatSDK {
const _selt = this
// const isAuthorize = _selt.ReportParams.from && (Object.keys(_selt.getAuthorize).length > 0) ? _selt.getAuthorize[_selt.ReportParams.from] : false
// if (isAuthorize) {
return new Promise(async function (resolve, reject) {
let status = await _selt._getSetting();
switch (status) {
case 1:
// 用户已授权,可以直接调用相关 API
var userInfo = await _selt._getUserInfo();
// 上报用户授权
_selt.ReportData(_selt.deepCopy({}, userInfo, {
action: 'authorize',
nickName: encodeURI(userInfo.nickName)
}))
resolve(userInfo);
break;
case 0:
// 用户已拒绝授权,再调用相关 API 或者 wx.authorize 会失败,需要引导用户到设置页面打开授权开关
var w = (wx as any).getSystemInfoSync().windowWidth;
var h = (wx as any).getSystemInfoSync().windowHeight;
var OpenSettingButton = (wx as any).createOpenSettingButton({
type: "text",
text: "",
style: {
left: 0,
top: 0,
width: w,
height: h
}
});
OpenSettingButton.onTap(async function (res) {
let t_status = await _selt._getSetting();
console.log("@@SDK:点击设置按钮返回t_status=", t_status);
if (t_status == 1) {
OpenSettingButton.offTap(this);
OpenSettingButton.destroy();
OpenSettingButton = null;
var userInfo = await _selt._getUserInfo();
return new Promise(async function (resolve, reject) {
let status = await _selt._getSetting();
switch (status) {
case 1:
// 用户已授权,可以直接调用相关 API
var userInfo = await _selt._getUserInfo();
// 上报用户授权
_selt.ReportData(_selt.deepCopy({}, userInfo, {
action: 'authorize',
nickName: encodeURI(userInfo.nickName)
}))
resolve(userInfo);
break;
case 0:
// 用户已拒绝授权,再调用相关 API 或者 wx.authorize 会失败,需要引导用户到设置页面打开授权开关
var w = (wx as any).getSystemInfoSync().windowWidth;
var h = (wx as any).getSystemInfoSync().windowHeight;
var OpenSettingButton = (wx as any).createOpenSettingButton({
type: "text",
text: "",
style: {
left: 0,
top: 0,
width: w,
height: h
}
});
OpenSettingButton.onTap(async function (res) {
let t_status = await _selt._getSetting();
console.log("@@SDK:点击设置按钮返回t_status=", t_status);
if (t_status == 1) {
OpenSettingButton.offTap(this);
OpenSettingButton.destroy();
OpenSettingButton = null;
var userInfo = await _selt._getUserInfo();
// 上报用户授权
_selt.ReportData(_selt.deepCopy({}, userInfo, {
action: 'authorize',
nickName: encodeURI(userInfo.nickName)
}))
resolve(userInfo);
}
});
break;
case -1:
// 未询问过用户授权,调用相关 API 或者 wx.authorize 会弹窗询问用户
var w = (wx as any).getSystemInfoSync().windowWidth;
var h = (wx as any).getSystemInfoSync().windowHeight;
let userBtn = (wx as any).createUserInfoButton({
type: "text",
text: "",
withCredentials: false,
style: {
left: 0,
top: 0,
width: w,
height: h
},
});
userBtn.onTap(
function (res) {
if (res.userInfo) {
//上报授权
userBtn.offTap(this);
userBtn.destroy();
userBtn = null;
var userInfo = res["userInfo"];
// 上报用户授权
_selt.ReportData(_selt.deepCopy({}, userInfo, {
action: 'authorize',
......@@ -447,43 +483,11 @@ class WechatSDK {
}))
resolve(userInfo);
}
});
break;
case -1:
// 未询问过用户授权,调用相关 API 或者 wx.authorize 会弹窗询问用户
var w = (wx as any).getSystemInfoSync().windowWidth;
var h = (wx as any).getSystemInfoSync().windowHeight;
let userBtn = (wx as any).createUserInfoButton({
type: "text",
text: "",
withCredentials: false,
style: {
left: 0,
top: 0,
width: w,
height: h
},
});
userBtn.onTap(
function (res) {
if (res.userInfo) {
//上报授权
userBtn.offTap(this);
userBtn.destroy();
userBtn = null;
var userInfo = res["userInfo"];
// 上报用户授权
_selt.ReportData(_selt.deepCopy({}, userInfo, {
action: 'authorize',
nickName: encodeURI(userInfo.nickName)
}))
resolve(userInfo);
}
}
);
break;
}
})
}
);
break;
}
})
// } else {
// console.log("##SDK--> 渠道并未开启授权")
// }
......@@ -543,7 +547,7 @@ class WechatSDK {
},
complete() {
console.log("##SDK分享发起")
resolve(0)
resolve(0);
}
}))
} catch (err) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论