Commit e682ab1b83597e691fd8b201b8670f83d1880bce
1 parent
d992823e
Exists in
master
and in
3 other branches
视频多例
Showing
5 changed files
with
67 additions
and
279 deletions
Show diff stats
sdk/shareTools.ts
| @@ -13,7 +13,7 @@ export class ShareTools { | @@ -13,7 +13,7 @@ export class ShareTools { | ||
| 13 | * 验证分享:可处理成功、失败 | 13 | * 验证分享:可处理成功、失败 |
| 14 | * @param shareKey | 14 | * @param shareKey |
| 15 | * @param params params.fail 有就不处理,没有自动处理 | 15 | * @param params params.fail 有就不处理,没有自动处理 |
| 16 | - * @param opts 目前支持4个key 1,title自定义分享标题 2,img_url自定义分享图片 3,share_type(不走后台配置写死走视频or分享。1分享2视频3无视频则分享)4,closeSimulate是否关闭模拟分享 | 16 | + * @param opts 目前支持5个key 1,title自定义分享标题 2,img_url自定义分享图片 3,share_type(不走后台配置写死走视频or分享。1分享2视频3无视频则分享)4,closeSimulate是否关闭模拟分享 5:multiton重新创建视频实例 |
| 17 | */ | 17 | */ |
| 18 | static share(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) { | 18 | static share(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) { |
| 19 | if (typeof wx === 'undefined' || this.isTest) { | 19 | if (typeof wx === 'undefined' || this.isTest) { |
| @@ -37,6 +37,16 @@ export class ShareTools { | @@ -37,6 +37,16 @@ export class ShareTools { | ||
| 37 | } | 37 | } |
| 38 | })//this.buildParams(params) | 38 | })//this.buildParams(params) |
| 39 | } | 39 | } |
| 40 | + | ||
| 41 | + /** | ||
| 42 | + * 重新创建视频实例 | ||
| 43 | + * @param shareKey | ||
| 44 | + * @param params | ||
| 45 | + * @param opts multiton重新创建视频实例 | ||
| 46 | + */ | ||
| 47 | + static multitonShare(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) { | ||
| 48 | + this.share(shareKey, params, { multiton: true, ...opts }); | ||
| 49 | + } | ||
| 40 | /** | 50 | /** |
| 41 | * 纯净分享 不处理回调 | 51 | * 纯净分享 不处理回调 |
| 42 | * @param shareKey | 52 | * @param shareKey |
wxsdk/base/SDKConst.ts
| @@ -35,7 +35,7 @@ export const GAMEDATA = { | @@ -35,7 +35,7 @@ export const GAMEDATA = { | ||
| 35 | 35 | ||
| 36 | 36 | ||
| 37 | // sdk版本 | 37 | // sdk版本 |
| 38 | -export const SDKVersion = 'v1.0.15'; | 38 | +export const SDKVersion = 'v1.0.16'; |
| 39 | // 是否打印 | 39 | // 是否打印 |
| 40 | export const __LOG__ = false; | 40 | export const __LOG__ = false; |
| 41 | // 是否mock | 41 | // 是否mock |
wxsdk/service/GameService.ts
| @@ -159,16 +159,21 @@ export default class GameService { | @@ -159,16 +159,21 @@ export default class GameService { | ||
| 159 | }) | 159 | }) |
| 160 | } | 160 | } |
| 161 | /** | 161 | /** |
| 162 | - * 文本检测 | 162 | + * 更换昵称和头像 |
| 163 | */ | 163 | */ |
| 164 | - updateNickname(nickname: string, headurl: string) { | 164 | + updateNickname(nickname: string, headurl: string) { |
| 165 | + let gameid = GAMEDATA.game_id; | ||
| 166 | + let uid = DataService.I.UserId; | ||
| 167 | + let token = DataService.I.Token; | ||
| 168 | + let pkv = SDKVersion; | ||
| 165 | return SDKApi.updateNickname({ | 169 | return SDKApi.updateNickname({ |
| 166 | - ...this.buildParams(), | 170 | + gameid,uid,token,pkv, |
| 167 | nickname, headurl | 171 | nickname, headurl |
| 168 | }) | 172 | }) |
| 169 | } | 173 | } |
| 170 | 174 | ||
| 171 | 175 | ||
| 176 | + | ||
| 172 | /** | 177 | /** |
| 173 | * 构建登录/弱登录公用参数 | 178 | * 构建登录/弱登录公用参数 |
| 174 | */ | 179 | */ |
wxsdk/service/ShareVideoService.ts
| 1 | -import { ShareVideoType, ShareVideoFrom } from "../base/SDKEnum"; | ||
| 2 | -import RandomUtils from "../utils/RandomUtils"; | ||
| 3 | -import ShareData from "./entity/ShareData"; | ||
| 4 | -import SDKShare from "../share/SDKShare"; | ||
| 5 | -import { __LOG__, GAMEDATA } from "../base/SDKConst"; | 1 | +import { GAMEDATA } from "../base/SDKConst"; |
| 2 | +import { ShareVideoType } from "../base/SDKEnum"; | ||
| 6 | import { SDKApi } from "../http/SDKApi"; | 3 | import { SDKApi } from "../http/SDKApi"; |
| 7 | -import DataService from "./DataService"; | 4 | +import SDKShare from "../share/SDKShare"; |
| 8 | import SDKVideo from "../share/SDKVideo"; | 5 | import SDKVideo from "../share/SDKVideo"; |
| 6 | +import RandomUtils from "../utils/RandomUtils"; | ||
| 7 | +import DataService from "./DataService"; | ||
| 8 | +import ShareData from "./entity/ShareData"; | ||
| 9 | 9 | ||
| 10 | export default class ShareVideoService { | 10 | export default class ShareVideoService { |
| 11 | private forwardKey?: string; | 11 | private forwardKey?: string; |
| @@ -27,26 +27,19 @@ export default class ShareVideoService { | @@ -27,26 +27,19 @@ export default class ShareVideoService { | ||
| 27 | this.forward(this.forwardKey); | 27 | this.forward(this.forwardKey); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | - private cnt: number = 1 | ||
| 31 | - async initList() { //初始化List | 30 | + async init() { |
| 32 | let data = await SDKApi.ShareList(); | 31 | let data = await SDKApi.ShareList(); |
| 33 | - if (data.code) { | ||
| 34 | - console.log('拉取ShareList失败!') | ||
| 35 | - setTimeout(this.initList.bind(this), 200 * this.cnt) | ||
| 36 | - this.cnt++; | ||
| 37 | - return | ||
| 38 | - } | ||
| 39 | this.setShareVideoData(data); | 32 | this.setShareVideoData(data); |
| 40 | - if (this.forwardKey) this.forward(this.forwardKey); | ||
| 41 | - } | ||
| 42 | - async init() { | ||
| 43 | - this.initList(); | 33 | + // console.log(JSON.stringify(data)) |
| 44 | SDKShare.I.updateShareMenu(true);//打开群分享 | 34 | SDKShare.I.updateShareMenu(true);//打开群分享 |
| 35 | + | ||
| 45 | if (cc.sys.platform === cc.sys.WECHAT_GAME) { | 36 | if (cc.sys.platform === cc.sys.WECHAT_GAME) { |
| 46 | if (GAMEDATA.shareMessageToFriend.scene > 0) { | 37 | if (GAMEDATA.shareMessageToFriend.scene > 0) { |
| 47 | wx.setMessageToFriendQuery({ shareMessageToFriendScene: GAMEDATA.shareMessageToFriend.scene }) | 38 | wx.setMessageToFriendQuery({ shareMessageToFriendScene: GAMEDATA.shareMessageToFriend.scene }) |
| 48 | } | 39 | } |
| 49 | } | 40 | } |
| 41 | + | ||
| 42 | + if (this.forwardKey) this.forward(this.forwardKey); | ||
| 50 | } | 43 | } |
| 51 | 44 | ||
| 52 | preload = true; | 45 | preload = true; |
| @@ -69,22 +62,26 @@ export default class ShareVideoService { | @@ -69,22 +62,26 @@ export default class ShareVideoService { | ||
| 69 | share_id: id, | 62 | share_id: id, |
| 70 | query: this.createQuery({ share_key: key, share_id: id, query: opts.query }), | 63 | query: this.createQuery({ share_key: key, share_id: id, query: opts.query }), |
| 71 | }; | 64 | }; |
| 65 | + let multiton = false; | ||
| 72 | if (opts) { | 66 | if (opts) { |
| 73 | if (opts.title) _params.title = opts.title; | 67 | if (opts.title) _params.title = opts.title; |
| 74 | if (opts.img_url) _params.imageUrl = opts.img_url; | 68 | if (opts.img_url) _params.imageUrl = opts.img_url; |
| 75 | if (opts.share_type) typ = opts.share_type; | 69 | if (opts.share_type) typ = opts.share_type; |
| 70 | + if (opts.hasOwnProperty('multiton')) { | ||
| 71 | + multiton = opts.multiton; | ||
| 72 | + }; | ||
| 76 | } | 73 | } |
| 77 | // console.log("share_query",JSON.stringify(_params), _params.query); | 74 | // console.log("share_query",JSON.stringify(_params), _params.query); |
| 78 | switch (+typ) { | 75 | switch (+typ) { |
| 79 | case ShareVideoType.Video: | 76 | case ShareVideoType.Video: |
| 80 | - SDKVideo.I.show(shareKey, videoid).then(success => { | 77 | + SDKVideo.I.show(shareKey, videoid, multiton).then(success => { |
| 81 | resolve(success) | 78 | resolve(success) |
| 82 | }).catch(err => { | 79 | }).catch(err => { |
| 83 | reject(err); | 80 | reject(err); |
| 84 | }) | 81 | }) |
| 85 | break; | 82 | break; |
| 86 | case ShareVideoType.VideoToShare: | 83 | case ShareVideoType.VideoToShare: |
| 87 | - SDKVideo.I.show(shareKey, videoid).then(success => { | 84 | + SDKVideo.I.show(shareKey, videoid, multiton).then(success => { |
| 88 | resolve(success) | 85 | resolve(success) |
| 89 | }).catch(err => { | 86 | }).catch(err => { |
| 90 | if (err.code !== 1000 && err.code !== 1003) {//1000关闭1003正在播放 | 87 | if (err.code !== 1000 && err.code !== 1003) {//1000关闭1003正在播放 |
| @@ -110,46 +107,6 @@ export default class ShareVideoService { | @@ -110,46 +107,6 @@ export default class ShareVideoService { | ||
| 110 | resolve({}) | 107 | resolve({}) |
| 111 | break; | 108 | break; |
| 112 | } | 109 | } |
| 113 | - // share_desc = opts.shareTitle || share_desc; | ||
| 114 | - // share_desc = StringUtils.stringFormat(share_desc, opts.formater); | ||
| 115 | - // let shareMsg = { | ||
| 116 | - // title: share_desc, | ||
| 117 | - // imageUrl: opts.shareImg || share_icon, | ||
| 118 | - // query | ||
| 119 | - // }; | ||
| 120 | - // // __LOG__ && console.error(`SDK ShareVideoService ${opts.shareForward ? 'forward 右上角分享:' : 'share 主动拉起分享:'}`); | ||
| 121 | - // // __LOG__ && console.error(`SDK ShareVideoService 分享参数对象shareMsg: ${JSON.stringify(shareMsg)}`); | ||
| 122 | - // // __LOG__ && console.error('SDK ShareVideoService 分享扩展参数', opts); | ||
| 123 | - // DebugUtils.I.dynamic(`====> PCSDK ShareVideoService share 分享query: ${query}`); | ||
| 124 | - // let success = (ret: any) => { | ||
| 125 | - // // __LOG__ && console.error(`SDK ShareVideoService ${opts.shareForward ? 'forward 右上角分享:' : 'share 主动拉起分享:'} 成功回调: ${share_id}`); | ||
| 126 | - // if (!opts.__GROUP) { | ||
| 127 | - // // 不是群分享的情况下,进行统计,群分享需要验证 | ||
| 128 | - // TempService.I.add(TempDataKeys.ShareSuccess, 1); | ||
| 129 | - // share_id && LogService.I.tacticShare(share_id, share_key, TacticType.ShareSuccess); | ||
| 130 | - // } | ||
| 131 | - // resolve({ ...ret, share_id, share_key: shareKey }); | ||
| 132 | - // }; | ||
| 133 | - // let fail = (err: any) => { | ||
| 134 | - // // __LOG__ && console.error(`SDK ShareVideoService ${opts.shareForward ? 'forward 右上角分享:' : 'share 主动拉起分享:'} 失败回调: ${share_id}`); | ||
| 135 | - // if (!opts.__GROUP) { | ||
| 136 | - // share_id && LogService.I.tacticShare(share_id, share_key, TacticType.ShareInterrupt); | ||
| 137 | - // } | ||
| 138 | - // reject({ ...err, share_id, share_key: shareKey }); | ||
| 139 | - // }; | ||
| 140 | - // if (opts.shareForward) | ||
| 141 | - // // 右上角转发 | ||
| 142 | - // Platform.I.forward(shareMsg, { | ||
| 143 | - // ...opts, | ||
| 144 | - // success, | ||
| 145 | - // fail, | ||
| 146 | - // context: this | ||
| 147 | - // }); | ||
| 148 | - // else | ||
| 149 | - // // 普通分享 | ||
| 150 | - // Platform.I.share(shareMsg, opts) | ||
| 151 | - // .then((ret: any) => success(ret)) | ||
| 152 | - // .catch((err: any) => fail(err)); | ||
| 153 | }); | 110 | }); |
| 154 | } | 111 | } |
| 155 | 112 | ||
| @@ -166,129 +123,6 @@ export default class ShareVideoService { | @@ -166,129 +123,6 @@ export default class ShareVideoService { | ||
| 166 | // console.log("forward", JSON.stringify(params)); | 123 | // console.log("forward", JSON.stringify(params)); |
| 167 | SDKShare.I.forward(params); | 124 | SDKShare.I.forward(params); |
| 168 | } | 125 | } |
| 169 | - | ||
| 170 | - /** | ||
| 171 | - * 分享自动入口 | ||
| 172 | - * @param shareKey | ||
| 173 | - * @param opts { | ||
| 174 | - * type: 当shareType为VideoAndShare时候,该参数有用,0:分享 1:视频 | ||
| 175 | - * context: 函数执行上下文 | ||
| 176 | - * fail: Function 失败函数 | ||
| 177 | - * success: Function 成功函数 | ||
| 178 | - * } | ||
| 179 | - */ | ||
| 180 | - // dispatch(shareKey: string, opts: any = {}, queryObj: { [key: string]: number | string } = {}) { | ||
| 181 | - // let shareData = this.getShareVideoData(shareKey); | ||
| 182 | - // let { share_open, share_wxad_id } = shareData; | ||
| 183 | - // opts = { | ||
| 184 | - // ...opts, | ||
| 185 | - // share_wxad_id, | ||
| 186 | - // __ShareData__: shareData | ||
| 187 | - // }; | ||
| 188 | - // this.dispatchType(+share_open, shareKey, opts, queryObj); | ||
| 189 | - // } | ||
| 190 | - | ||
| 191 | - shareDispatch(shareKey: string, opts: any = {}, queryObj: { [key: string]: number | string } = {}) { | ||
| 192 | - // this.dispatch(shareKey, opts, queryObj); | ||
| 193 | - } | ||
| 194 | - | ||
| 195 | - /** | ||
| 196 | - * 根据分享类型进行处理 | ||
| 197 | - * @param shareType | ||
| 198 | - * @param shareKey | ||
| 199 | - * @param opts { | ||
| 200 | - * type: 当shareType为VideoAndShare时候,该参数有用,0:分享 1:视频 | ||
| 201 | - * context: 函数执行上下文 | ||
| 202 | - * fail: Function 失败函数 | ||
| 203 | - * success: Function 成功函数 | ||
| 204 | - * } | ||
| 205 | - */ | ||
| 206 | - dispatchType(shareType: ShareVideoType, shareKey: string, opts: any = {}, queryObj: { [key: string]: number | string } = {}) { | ||
| 207 | - // if (Platform.IsWx && OnlineService.I.getParamsInt(OnlineKeys.ShareUnlock, 1) !== 1) | ||
| 208 | - // shareType = ShareVideoType.None; | ||
| 209 | - | ||
| 210 | - // let share_wxad_id = opts.share_wxad_id || (opts.__ShareData__ || this.getShareVideoData(shareKey) || {}).share_wxad_id; | ||
| 211 | - // switch (shareType) { | ||
| 212 | - // case ShareVideoType.None: // 无分享 | ||
| 213 | - // this.handleSuccess(opts, shareType, ShareVideoFrom.None, null); | ||
| 214 | - // break; | ||
| 215 | - | ||
| 216 | - // case ShareVideoType.Share: // 同步分享 | ||
| 217 | - // // 同步分享点:是否开启后台配置中如果存在视频ID,则自动切换为视频点 | ||
| 218 | - // if (opts.shareAutoVideo && share_wxad_id) { | ||
| 219 | - // this.dispatchType(ShareVideoType.VideoToShare, shareKey, opts, queryObj); | ||
| 220 | - // break; | ||
| 221 | - // } | ||
| 222 | - // this.group(shareKey, queryObj, opts) | ||
| 223 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Share, ret)) | ||
| 224 | - // .catch(err => this.handleFail(opts, shareType, ShareVideoFrom.Share, err)); | ||
| 225 | - // break; | ||
| 226 | - | ||
| 227 | - // case ShareVideoType.ShareAysnc: // 异步分享 | ||
| 228 | - // break; | ||
| 229 | - | ||
| 230 | - // case ShareVideoType.ShareIntegral: // 分享积分 | ||
| 231 | - // // 是否开启分享积分,且配置为分享积分 | ||
| 232 | - // if (IntegralService.I.IsOpen) { | ||
| 233 | - // let data = IntegralService.I.convert(); | ||
| 234 | - // if (data) { | ||
| 235 | - // opts.shareIntegralData = data; | ||
| 236 | - // this.dispatchType(data.shareType, shareKey, opts, queryObj); | ||
| 237 | - // } else { | ||
| 238 | - // // 超过了现在,直接执行失败:今日已达分享上限次数,请明日再来 | ||
| 239 | - // this.handleFail(opts, shareType, ShareVideoFrom.Share, { ...ShareVideoError.ShareOverLimit }); | ||
| 240 | - // } | ||
| 241 | - // } else { | ||
| 242 | - // // 如果配置了分享积分,但是未开启开关,则推:无视频则分享 | ||
| 243 | - // this.dispatchType(ShareVideoType.VideoToShare, shareKey, opts, queryObj); | ||
| 244 | - // } | ||
| 245 | - // break; | ||
| 246 | - | ||
| 247 | - // case ShareVideoType.Video: // 看视频 | ||
| 248 | - // Platform.I.video(shareKey, share_wxad_id) | ||
| 249 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Video, ret)) | ||
| 250 | - // .catch((err: any) => this.handleFail(opts, shareType, ShareVideoFrom.Video, err)); | ||
| 251 | - // break; | ||
| 252 | - | ||
| 253 | - // case ShareVideoType.VideoToShare: // 无视频则分享 | ||
| 254 | - // if (!share_wxad_id) { | ||
| 255 | - // this.group(shareKey, queryObj, opts) | ||
| 256 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Share, ret)) | ||
| 257 | - // .catch(err => this.handleFail(opts, shareType, ShareVideoFrom.Share, err)); | ||
| 258 | - // return; | ||
| 259 | - // } | ||
| 260 | - // Platform.I.video(shareKey, share_wxad_id) | ||
| 261 | - // .then((ret) => this.handleSuccess(opts, shareType, ShareVideoFrom.Video, ret)) | ||
| 262 | - // .catch((err: any) => { | ||
| 263 | - // // 拉取视频失败/视频UID不存在/微信版本过低,暂不支持看视频,自动切换到分享 | ||
| 264 | - // let { VideoFail, VideoInvalid, VideoNotOpen } = ShareVideoError; | ||
| 265 | - // if (err && (err.code === VideoFail.code || err.code === VideoInvalid.code || err.code === VideoNotOpen.code)) | ||
| 266 | - // this.group(shareKey, queryObj, opts) | ||
| 267 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Share, ret)) | ||
| 268 | - // .catch(err => this.handleFail(opts, shareType, ShareVideoFrom.Share, err)); | ||
| 269 | - // else | ||
| 270 | - // this.handleFail(opts, shareType, ShareVideoFrom.Video, err); | ||
| 271 | - // }); | ||
| 272 | - // break; | ||
| 273 | - | ||
| 274 | - // case ShareVideoType.VideoAndShare: // 看视频 | ||
| 275 | - // if (share_wxad_id && opts.type === 1) { | ||
| 276 | - // Platform.I.video(shareKey, share_wxad_id) | ||
| 277 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Video, ret)) | ||
| 278 | - // .catch((err: any) => this.handleFail(opts, shareType, ShareVideoFrom.Video, err)); | ||
| 279 | - // } else { | ||
| 280 | - // this.group(shareKey, queryObj, opts) | ||
| 281 | - // .then(ret => this.handleSuccess(opts, shareType, ShareVideoFrom.Share, ret)) | ||
| 282 | - // .catch(err => this.handleFail(opts, shareType, ShareVideoFrom.Share, err)); | ||
| 283 | - // } | ||
| 284 | - // break; | ||
| 285 | - // } | ||
| 286 | - } | ||
| 287 | - | ||
| 288 | - shareWithType(shareType: ShareVideoType, shareKey: string, opts: any = {}, queryObj: { [key: string]: number | string } = {}) { | ||
| 289 | - this.dispatchType(shareType, shareKey, opts, queryObj); | ||
| 290 | - } | ||
| 291 | - | ||
| 292 | /** | 126 | /** |
| 293 | * 分享id | 127 | * 分享id |
| 294 | * @param shareKey | 128 | * @param shareKey |
| @@ -309,25 +143,6 @@ export default class ShareVideoService { | @@ -309,25 +143,6 @@ export default class ShareVideoService { | ||
| 309 | getShareVideoType(shareKey: string): ShareVideoType { | 143 | getShareVideoType(shareKey: string): ShareVideoType { |
| 310 | let shareData = this.getShareVideoData(shareKey); | 144 | let shareData = this.getShareVideoData(shareKey); |
| 311 | let shareType: ShareVideoType = +shareData.typ; | 145 | let shareType: ShareVideoType = +shareData.typ; |
| 312 | - // // 木有开启分享,直接返回None | ||
| 313 | - // if (Platform.IsWx && OnlineService.I.getParamsInt(OnlineKeys.ShareUnlock, 1) !== 1) | ||
| 314 | - // return ShareVideoType.None; | ||
| 315 | - | ||
| 316 | - // // 后台配置视频,判断是否加载出错过,出错返回分享,否则直接返回 | ||
| 317 | - // if (shareType === ShareVideoType.Video || shareType === ShareVideoType.VideoAndShare || shareType === ShareVideoType.VideoToShare) { | ||
| 318 | - // // 检测视频加载失败 | ||
| 319 | - // if (Platform.I.isVideoErrored()) | ||
| 320 | - // return ShareVideoType.Share; | ||
| 321 | - // else | ||
| 322 | - // return shareType; | ||
| 323 | - // } | ||
| 324 | - | ||
| 325 | - // // 是否开启分享积分,且配置为分享积分 | ||
| 326 | - // if (shareType === ShareVideoType.ShareIntegral && IntegralService.I.IsOpen) { | ||
| 327 | - // let data = IntegralService.I.convert(); | ||
| 328 | - // if (data) | ||
| 329 | - // return data.shareType; | ||
| 330 | - // } | ||
| 331 | return shareType; | 146 | return shareType; |
| 332 | } | 147 | } |
| 333 | 148 | ||
| @@ -339,55 +154,6 @@ export default class ShareVideoService { | @@ -339,55 +154,6 @@ export default class ShareVideoService { | ||
| 339 | return this.getShareVideoType(shareKey); | 154 | return this.getShareVideoType(shareKey); |
| 340 | } | 155 | } |
| 341 | 156 | ||
| 342 | - private handleSuccess(opts: any, shareType: ShareVideoType, from: ShareVideoFrom, ret: any) { | ||
| 343 | - // // 判断分享规则 | ||
| 344 | - // if (IntegralService.I.IsOpen && opts.shareIntegralData && from === ShareVideoFrom.Share) { | ||
| 345 | - // let shareNum = IntegralService.I.IntegralShareNum; | ||
| 346 | - // if (shareNum === 0) { | ||
| 347 | - // // 第1次分享 | ||
| 348 | - // IntegralService.I.setIntegralShareNum(); | ||
| 349 | - // IntegralService.I.resetShareRatio(); | ||
| 350 | - // __LOG__ && console.error(`SDK ShareVideoService 分享积分 第1次分享: 初始来源:${shareType}, 类型:${from}, 分享次数:${shareNum}`); | ||
| 351 | - // // 设定:第一次强制失败 | ||
| 352 | - // // return this.handleFail(opts, shareType, from, { ...ShareVideoError.ShareRuleFail }, true); | ||
| 353 | - // } else { | ||
| 354 | - // // 第n次分享 | ||
| 355 | - // IntegralService.I.setIntegralShareNum(); | ||
| 356 | - // IntegralService.I.addShareRatio(); | ||
| 357 | - | ||
| 358 | - // let shareRatio = IntegralService.I.ShareRatio; | ||
| 359 | - // let radomRatio = +Math.random().toFixed(2); | ||
| 360 | - // __LOG__ && console.error(`SDK ShareVideoService 分享积分 第${shareNum}次分享: 初始来源:${shareType}, 类型:${from}, 分享次数:${shareNum}, 随机概率:${radomRatio}, 失败概率:${shareRatio}`); | ||
| 361 | - // if (radomRatio <= shareRatio) { | ||
| 362 | - // __LOG__ && console.error(`SDK ShareVideoService 分享积分 触发失败规则:分享强制失败, radomRatio <= shareRatio: ${radomRatio} <= ${shareRatio}`); | ||
| 363 | - // return this.handleFail(opts, shareType, from, { ...ShareVideoError.ShareRuleFail }, true); | ||
| 364 | - // } | ||
| 365 | - // } | ||
| 366 | - | ||
| 367 | - // // 是否同步分享积分数据 | ||
| 368 | - // let { intergral, isAsyncNum } = opts.shareIntegralData; | ||
| 369 | - // isAsyncNum && LocalService.I.saveVideoOverShareNum(intergral); | ||
| 370 | - // __LOG__ && isAsyncNum && console.error(`SDK ShareVideoService 分享积分 触发视频看完后,再次分享次数限制更新成功,成功后数量:${LocalService.I.getVideoOverShareNum(intergral)}`); | ||
| 371 | - // } | ||
| 372 | - | ||
| 373 | - // let success = opts.success || function () { }; | ||
| 374 | - // let context = opts.context || this; | ||
| 375 | - // typeof success === 'function' && success.call(context, from, ret); | ||
| 376 | - // (from === ShareVideoFrom.Share) && TempService.I.add(TempDataKeys.ShareSuccess, 1); | ||
| 377 | - } | ||
| 378 | - | ||
| 379 | - private handleFail(opts: any, shareType: ShareVideoType, from: ShareVideoFrom, err: any, isFromIntegral?: boolean) { | ||
| 380 | - // if (err instanceof Error) return; | ||
| 381 | - // // 判断来自分享积分规则,则重置分享概率 | ||
| 382 | - // if (IntegralService.I.IsOpen && opts.shareIntegralData && from === ShareVideoFrom.Share) { | ||
| 383 | - // __LOG__ && console.error(`SDK ShareVideoService 强制失败分享,回滚到: ${IntegralService.I.ShareRatioInit}`); | ||
| 384 | - // IntegralService.I.resetShareRatio(); | ||
| 385 | - // } | ||
| 386 | - // let fail = opts.fail || function () { }; | ||
| 387 | - // let context = opts.context || this; | ||
| 388 | - // fail && fail.call(context, from, err); | ||
| 389 | - } | ||
| 390 | - | ||
| 391 | private setShareVideoData(data: any) { | 157 | private setShareVideoData(data: any) { |
| 392 | (data.data || []).forEach((item: any) => { | 158 | (data.data || []).forEach((item: any) => { |
| 393 | this.shareObjs[item.key] = this.shareObjs[item.key] || []; | 159 | this.shareObjs[item.key] = this.shareObjs[item.key] || []; |
| @@ -399,10 +165,6 @@ export default class ShareVideoService { | @@ -399,10 +165,6 @@ export default class ShareVideoService { | ||
| 399 | let list: Array<ShareData> = this.shareObjs[shareKey]; | 165 | let list: Array<ShareData> = this.shareObjs[shareKey]; |
| 400 | if (!list) { | 166 | if (!list) { |
| 401 | list = this.shareObjs.default; | 167 | list = this.shareObjs.default; |
| 402 | - // let shareData: ShareData = CfgManager.I.config.ShareData; | ||
| 403 | - // if (!shareData) throw new TypeError('SDK ShareVideoService - 请在config.js中配置ShareData'); | ||
| 404 | - // let share_open = shareData.share_wxad_id ? ShareVideoType.Video : ShareVideoType.Share; | ||
| 405 | - // return { ...shareData, share_id: 99999 + '', share_key: shareKey, share_open }; | ||
| 406 | } | 168 | } |
| 407 | let index = RandomUtils.rand(0, list.length); | 169 | let index = RandomUtils.rand(0, list.length); |
| 408 | return list[index]; | 170 | return list[index]; |
wxsdk/share/SDKVideo.ts
| @@ -8,6 +8,7 @@ import LogService from "../service/LogService"; | @@ -8,6 +8,7 @@ import LogService from "../service/LogService"; | ||
| 8 | export default class SDKVideo { | 8 | export default class SDKVideo { |
| 9 | private _isPlaying: boolean; | 9 | private _isPlaying: boolean; |
| 10 | private _isErrored: boolean; | 10 | private _isErrored: boolean; |
| 11 | + private _isMultiton: boolean; | ||
| 11 | private resolve: any; | 12 | private resolve: any; |
| 12 | private reject: any; | 13 | private reject: any; |
| 13 | private videoAd: any; | 14 | private videoAd: any; |
| @@ -19,6 +20,7 @@ export default class SDKVideo { | @@ -19,6 +20,7 @@ export default class SDKVideo { | ||
| 19 | this.videoKey = ''; | 20 | this.videoKey = ''; |
| 20 | this._isPlaying = false; | 21 | this._isPlaying = false; |
| 21 | this._isErrored = false; | 22 | this._isErrored = false; |
| 23 | + this._isMultiton = false; | ||
| 22 | } | 24 | } |
| 23 | 25 | ||
| 24 | get isErrored() { | 26 | get isErrored() { |
| @@ -35,7 +37,7 @@ export default class SDKVideo { | @@ -35,7 +37,7 @@ export default class SDKVideo { | ||
| 35 | if (this.preloadVideoAd || this.isPreload) return | 37 | if (this.preloadVideoAd || this.isPreload) return |
| 36 | this.isPreload = true; | 38 | this.isPreload = true; |
| 37 | let ad = wx.createRewardedVideoAd({ | 39 | let ad = wx.createRewardedVideoAd({ |
| 38 | - adUnitId | 40 | + adUnitId, |
| 39 | }); | 41 | }); |
| 40 | ad.onError(this.preError); | 42 | ad.onError(this.preError); |
| 41 | ad.load().then(this.handleLoaded2).catch(() => { | 43 | ad.load().then(this.handleLoaded2).catch(() => { |
| @@ -54,8 +56,6 @@ export default class SDKVideo { | @@ -54,8 +56,6 @@ export default class SDKVideo { | ||
| 54 | that.preloadVideoAd = that.videoAd2; | 56 | that.preloadVideoAd = that.videoAd2; |
| 55 | that.isPreload = false | 57 | that.isPreload = false |
| 56 | __LOG__ && console.warn("视频预加载成功", that.preloadVideoAd) | 58 | __LOG__ && console.warn("视频预加载成功", that.preloadVideoAd) |
| 57 | - // that.preloadVideoAd.ttttttt = '111111' | ||
| 58 | - // console.warn(that.preloadVideoAd.isReady()); | ||
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | offPreload() { | 61 | offPreload() { |
| @@ -63,7 +63,14 @@ export default class SDKVideo { | @@ -63,7 +63,14 @@ export default class SDKVideo { | ||
| 63 | that.preloadVideoAd.offError(that.preError); | 63 | that.preloadVideoAd.offError(that.preError); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | - async show(videoKey: string, adUnitId: string): Promise<any> { | 66 | + /** |
| 67 | + * | ||
| 68 | + * @param videoKey | ||
| 69 | + * @param adUnitId | ||
| 70 | + * @param multiton 多例 | ||
| 71 | + * @returns | ||
| 72 | + */ | ||
| 73 | + async show(videoKey: string, adUnitId: string, multiton: boolean = false): Promise<any> { | ||
| 67 | return new Promise(async (resolve, reject) => { | 74 | return new Promise(async (resolve, reject) => { |
| 68 | if (this.isPlaying) | 75 | if (this.isPlaying) |
| 69 | return reject({ ...ShareVideoError.VideoPlaying }); | 76 | return reject({ ...ShareVideoError.VideoPlaying }); |
| @@ -72,26 +79,23 @@ export default class SDKVideo { | @@ -72,26 +79,23 @@ export default class SDKVideo { | ||
| 72 | return reject({ ...ShareVideoError.VideoInvalid }); | 79 | return reject({ ...ShareVideoError.VideoInvalid }); |
| 73 | 80 | ||
| 74 | LogService.I.adStat(videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.request); | 81 | LogService.I.adStat(videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.request); |
| 75 | - let videoAd | ||
| 76 | - let hasVideo | ||
| 77 | - if (this.preloadVideoAd) { | 82 | + let videoAd; |
| 83 | + let hasVideo; | ||
| 84 | + if (this.preloadVideoAd && !multiton) { | ||
| 78 | __LOG__ && console.log("使用预加载视频", this.preloadVideoAd) | 85 | __LOG__ && console.log("使用预加载视频", this.preloadVideoAd) |
| 79 | hasVideo = true | 86 | hasVideo = true |
| 80 | - this.offPreload() | 87 | + this.offPreload(); |
| 81 | videoAd = this.preloadVideoAd; | 88 | videoAd = this.preloadVideoAd; |
| 82 | - this.preloadVideoAd = null; | ||
| 83 | - // this.preloadVideo(adUnitId); | ||
| 84 | } else { | 89 | } else { |
| 85 | __LOG__ && console.log("不使用预加载视频") | 90 | __LOG__ && console.log("不使用预加载视频") |
| 86 | - hasVideo = false | 91 | + hasVideo = false; |
| 87 | videoAd = wx.createRewardedVideoAd({ | 92 | videoAd = wx.createRewardedVideoAd({ |
| 88 | - adUnitId | 93 | + adUnitId, |
| 94 | + multiton: true | ||
| 89 | }); | 95 | }); |
| 90 | // this.preloadVideo(adUnitId); | 96 | // this.preloadVideo(adUnitId); |
| 91 | } | 97 | } |
| 92 | - // let videoAd = wx.createRewardedVideoAd({ | ||
| 93 | - // adUnitId | ||
| 94 | - // }); | 98 | + this._isMultiton = !hasVideo; |
| 95 | if (!videoAd) | 99 | if (!videoAd) |
| 96 | return reject({ ...ShareVideoError.VideoNotOpen }); | 100 | return reject({ ...ShareVideoError.VideoNotOpen }); |
| 97 | 101 | ||
| @@ -101,7 +105,6 @@ export default class SDKVideo { | @@ -101,7 +105,6 @@ export default class SDKVideo { | ||
| 101 | this.adUnitId = adUnitId; | 105 | this.adUnitId = adUnitId; |
| 102 | this.resolve = resolve; | 106 | this.resolve = resolve; |
| 103 | this.reject = reject; | 107 | this.reject = reject; |
| 104 | - | ||
| 105 | this.videoAd = videoAd; | 108 | this.videoAd = videoAd; |
| 106 | videoAd.onClose(this.handleClose); | 109 | videoAd.onClose(this.handleClose); |
| 107 | videoAd.onError(this.onError); | 110 | videoAd.onError(this.onError); |
| @@ -123,7 +126,6 @@ export default class SDKVideo { | @@ -123,7 +126,6 @@ export default class SDKVideo { | ||
| 123 | } | 126 | } |
| 124 | 127 | ||
| 125 | } | 128 | } |
| 126 | - this.preloadVideo(adUnitId); | ||
| 127 | __LOG__ && console.warn('====> PCSDK WxVideo 请求视频adUnitId', adUnitId); | 129 | __LOG__ && console.warn('====> PCSDK WxVideo 请求视频adUnitId', adUnitId); |
| 128 | }); | 130 | }); |
| 129 | } | 131 | } |
| @@ -140,8 +142,8 @@ export default class SDKVideo { | @@ -140,8 +142,8 @@ export default class SDKVideo { | ||
| 140 | // __LOG__ && console.warn("handleLoaded2", that.videoAd, that.videoAd.isReady()); | 142 | // __LOG__ && console.warn("handleLoaded2", that.videoAd, that.videoAd.isReady()); |
| 141 | LogService.I.adStat(this.videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.show) | 143 | LogService.I.adStat(this.videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.show) |
| 142 | 144 | ||
| 143 | - if (cc.sys.platform === cc.sys.WECHAT_GAME && typeof qq == 'undefined') { | ||
| 144 | - if (that.videoAd.isReady()) {//抖音、qq 没有 isReady | 145 | + if (cc.sys.platform === cc.sys.WECHAT_GAME) { |
| 146 | + if (that.videoAd.isReady()) {//抖音没有 isReady | ||
| 145 | that.show_time = Date.now(); | 147 | that.show_time = Date.now(); |
| 146 | await that.videoAd.show(); | 148 | await that.videoAd.show(); |
| 147 | } else { | 149 | } else { |
| @@ -178,6 +180,15 @@ export default class SDKVideo { | @@ -178,6 +180,15 @@ export default class SDKVideo { | ||
| 178 | that.reject && that.reject({ ...ShareVideoError.VideoQuit }); | 180 | that.reject && that.reject({ ...ShareVideoError.VideoQuit }); |
| 179 | } | 181 | } |
| 180 | that.videoAd.offClose(that.handleClose); | 182 | that.videoAd.offClose(that.handleClose); |
| 183 | + if (that._isMultiton) { | ||
| 184 | + that.videoAd.destroy(); | ||
| 185 | + that.videoAd = null; | ||
| 186 | + } | ||
| 187 | + // if (that.preloadVideoAd) { | ||
| 188 | + // that.preloadVideoAd.destroy(); | ||
| 189 | + // that.preloadVideoAd = null; | ||
| 190 | + // } | ||
| 191 | + that.preloadVideo(that.adUnitId); | ||
| 181 | that._isPlaying = false; | 192 | that._isPlaying = false; |
| 182 | that._isErrored = false; | 193 | that._isErrored = false; |
| 183 | } | 194 | } |