YT js-sdk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173

/**
*
* js与app交互方法
*
* 2017-12-07 by csorz
*
*/

// 一、微信 端
// 1.引入 http://res.wx.qq.com/open/js/jweixin-1.2.0.js
// 2.配置config
// 3.wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
// });
// 4.wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
// });

// 二、APP 端
var yt = {
app : window.webkit.messageHandlers.ytApp window.ytApp window.wx null,
fnId : 0,
// 检查客户端版本
// callbackParams stringNumber
checkVersion : function(){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
yt.app && yt.app.checkVersion({success:callbackFn});
});
},
// 获取token
// callbackParams string
getToken : function(){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
yt.app && yt.app.checkVersion({success:callbackFn});
});
},
// 获取userId
// callbackParams stringNumber
getUserId : function(obj){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
yt.app && yt.app.checkVersion({success:callbackFn});
});
},
// 返回APP
// 无回调
backToApp : function(){
yt.app && yt.app.backToApp();
},
// 跳转APP登录页
// 无回调
toLogin : function(){
yt.app && yt.app.toLogin();
},
// 跳转APP登录页参数:
// { username : '', password : ''}
// 无回调
backtoLogin : function(obj){
yt.app && yt.app.backtoLogin(obj);
},
// 角色操作参数:
// 创建 { type : 'create' }
// 退出 { type : "exit", roleGardenId : 1, roleClassId : 2 }
// 切换角色 { type : "change", roleGardenId: 1, roleClassId : 2 }
// 无回调
operateRole : function(obj){
yt.app && yt.app.operateRole(obj);
},
// 获取android高度
// callbackParams { statusHeight : '', height : '', version : '' }
setTitleHeight : function(){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
yt.app && yt.app.setTitleHeight({success:callbackFn});
});
},
// 复制邀请码参数:
// { inviteCode : '123abc' }
// callbackParams Number(1成功,0失败)
copyInviteCode : function(obj){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
Object.assign(obj{},{success:callbackFn})
yt.app && yt.app.copyInviteCode(obj);
});
},
// 跳转笔记详情参数:
// { id : '128' }
// 无回调
toNoteDetail : function(obj){
yt.app && yt.app.copyInviteCode(obj);
},
// 跳转课程播放页面参数:
// { id : 'id', name : 'name', img : 'img', chapter : 0 }
// 无回调
toCoursePlay : function(){
yt.app && yt.app.toCoursePlay(obj);
},
// 激活成功
// 无回调
activateSuccess : function(){
yt.app && yt.app.activateSuccess();
},
// 支付参数:
// 支付宝 { platform : "Alipay", parameters : 'parameters' }
// 微信暂无
// callbackParams Number(1成功,0失败)
pay : function(obj){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
Object.assign(obj{},{success:callbackFn})
yt.app && yt.app.setTitleHeight(obj);
});
},
// 选择图片
// 参考 微信企业号开发文档
chooseImage : function(obj){
return new Promise(function (resolve, reject) {
var callbackFn = "appCallback_";
if(window.wx){
Object.assign(obj,{success:resolve})
}else{
callbackFn += yt.fnId;
yt.fnId += 1;
window[callbackFn] = resolve;
Object.assign(obj{},{success:callbackFn})
}
yt.app && yt.app.chooseImage(obj);
});
},
previewImage : function(obj){

},
uploadImage : function(obj){

}
}

// 三、调用方法:
yt.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success:function(res){
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});

// 四、参考文档
// 微信企业号开发文档:
// http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3#.E5.9B.BE.E5.83.8F.E6.8E.A5.E5.8F.A3


YT js-sdk
http://example.com/2017-12-08 亿童-js-sdk/
作者
csorz
发布于
2017年12月8日
许可协议