|
|
@ -34,6 +34,11 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
|
|
|
let isplayOver = false; |
|
|
|
|
|
let timer = 0; |
|
|
|
|
|
let Timer = null; |
|
|
|
|
|
let stayTime = 0; |
|
|
|
|
|
let isOverTask = false |
|
|
import { |
|
|
import { |
|
|
detailsTiktokImg, // 获取图片详情 |
|
|
detailsTiktokImg, // 获取图片详情 |
|
|
judgeTiktokLike, // 查询是否点赞过 |
|
|
judgeTiktokLike, // 查询是否点赞过 |
|
|
@ -45,9 +50,10 @@ |
|
|
queryCreatorScanCodeById, //获取艺术家搜索码 |
|
|
queryCreatorScanCodeById, //获取艺术家搜索码 |
|
|
insertOrUpdatePreAdProfit, //新增/更新艺术家即将入账广告收益 |
|
|
insertOrUpdatePreAdProfit, //新增/更新艺术家即将入账广告收益 |
|
|
insertOrUpdatePreInviteProfit, // 新增/更新艺术家即将入账邀请收益 |
|
|
insertOrUpdatePreInviteProfit, // 新增/更新艺术家即将入账邀请收益 |
|
|
checkUserCanDownload // 检查某平台用户当日下载次数是否超标 |
|
|
checkUserCanDownload// 检查某平台用户当日下载次数是否超标 |
|
|
} from '@/api/creator.js' |
|
|
} from '@/api/creator.js' |
|
|
import {loginTiktok} from '@/api/auth.js' |
|
|
import {loginTiktok} from '@/api/auth.js' |
|
|
|
|
|
import tiktokAd from '@/utils/tiktokAd.js' |
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
@ -65,12 +71,84 @@ |
|
|
likeColor: '#ef223c', |
|
|
likeColor: '#ef223c', |
|
|
collectColor: '#dcaa04', |
|
|
collectColor: '#dcaa04', |
|
|
urlParamId: undefined, |
|
|
urlParamId: undefined, |
|
|
|
|
|
htime: 0, //广告点击 |
|
|
|
|
|
mintime: 999999999, //最短持续时间 |
|
|
|
|
|
taskhide: false, |
|
|
|
|
|
starttask: false, |
|
|
|
|
|
done: false, |
|
|
|
|
|
adList:['0qfnoa4053uwkefbas','2v63zq5hvfclpxmurl','d4ltbnxa23zp2hhqwe'] //激励视频广告列表 |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
onLoad(option){ |
|
|
onLoad(option){ |
|
|
if (option?.id) { |
|
|
if (option?.id) { |
|
|
this.urlParamId = option.id; |
|
|
this.urlParamId = option.id; |
|
|
} |
|
|
} |
|
|
|
|
|
isOverTask = false; |
|
|
|
|
|
//随机选择一个激励视频广告初始化 |
|
|
|
|
|
let num = Math.floor(Math.random() * this.adList.length + 1)-1; |
|
|
|
|
|
console.log('随机激励视频id为:',this.adList[num]) |
|
|
|
|
|
//tiktokAd.rewarded.load(this.adList[num]) |
|
|
|
|
|
this.loadAdvertise(this.adList[num]); |
|
|
|
|
|
}, |
|
|
|
|
|
onHide: function() { |
|
|
|
|
|
var htime = Date.now() |
|
|
|
|
|
this.taskhide = true |
|
|
|
|
|
this.htime = htime |
|
|
|
|
|
}, |
|
|
|
|
|
onShow: function() { |
|
|
|
|
|
var that = this; |
|
|
|
|
|
if (isOverTask) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if (this.taskhide) { |
|
|
|
|
|
var stime = Date.now() |
|
|
|
|
|
var lasttime = stime - this.htime; |
|
|
|
|
|
stayTime = lasttime |
|
|
|
|
|
if (!isplayOver) { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '任务失败', |
|
|
|
|
|
content: '广告未播放完成', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmText: '知道了' |
|
|
|
|
|
}) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if (lasttime < this.mintime && this.mintime > 0) { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '任务失败', |
|
|
|
|
|
content: '广告停留时间需要大于' + this.mintime / 1000 + '秒', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmText: '知道了' |
|
|
|
|
|
}) |
|
|
|
|
|
// that.setData({ |
|
|
|
|
|
// taskhide: false |
|
|
|
|
|
// }) |
|
|
|
|
|
that.taskhide = false; |
|
|
|
|
|
} else { |
|
|
|
|
|
if (that.hudian > 0) { |
|
|
|
|
|
this.done = true; |
|
|
|
|
|
this.starttask = true; |
|
|
|
|
|
isOverTask = true; |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '任务完成', |
|
|
|
|
|
content: '点击右上角关闭按钮', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmText: '知道了' |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '任务完成', |
|
|
|
|
|
content: '你已经完成此任务!!', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmText: '确定', |
|
|
|
|
|
complete: function() { |
|
|
|
|
|
this.done = true |
|
|
|
|
|
this.starttask = true |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
const detailId = uni.getStorageSync('detailId') |
|
|
const detailId = uni.getStorageSync('detailId') |
|
|
@ -99,6 +177,103 @@ |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
onUnload() { |
|
|
|
|
|
//清除定时器 |
|
|
|
|
|
clearInterval(Timer) |
|
|
|
|
|
}, |
|
|
|
|
|
//开启激励视频广告停留计时器 |
|
|
|
|
|
statTimer() { |
|
|
|
|
|
Timer = setInterval(() => { |
|
|
|
|
|
timer++; |
|
|
|
|
|
if (timer >= 16) { |
|
|
|
|
|
isplayOver = true; |
|
|
|
|
|
clearInterval(Timer) |
|
|
|
|
|
} |
|
|
|
|
|
}, 1000) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载激励视频广告 |
|
|
|
|
|
loadAdvertise(e){ |
|
|
|
|
|
// 在页面中定义激励视频广告 |
|
|
|
|
|
let videoAd = null |
|
|
|
|
|
var that = this |
|
|
|
|
|
// 在页面onLoad回调事件中创建激励视频广告实例 |
|
|
|
|
|
if (tt.createRewardedVideoAd) { |
|
|
|
|
|
videoAd = tt.createRewardedVideoAd({ |
|
|
|
|
|
adUnitId: e |
|
|
|
|
|
}) |
|
|
|
|
|
this.videoAd = videoAd |
|
|
|
|
|
videoAd.onLoad(() => { |
|
|
|
|
|
console.log('激励视频广告'+e+'加载成功') |
|
|
|
|
|
}) |
|
|
|
|
|
videoAd.onError((err) => { |
|
|
|
|
|
that.err() |
|
|
|
|
|
}) |
|
|
|
|
|
videoAd.onClose((res) => { |
|
|
|
|
|
if (res && res.isEnded) { |
|
|
|
|
|
// 正常播放结束,可以下发游戏奖励 |
|
|
|
|
|
if (that.htime == 0) { |
|
|
|
|
|
wx.showModal({ |
|
|
|
|
|
title: '您没有点击广告', |
|
|
|
|
|
content: '点击视频广告下方的按钮进入广告停留' + that.mintime / 1000 + '秒后关闭广告即可', |
|
|
|
|
|
showCancel: false |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
if (stayTime < this.mintime && this.mintime > 0) { |
|
|
|
|
|
wx.showModal({ |
|
|
|
|
|
title: '图片下载失败', |
|
|
|
|
|
content: '广告停留时间需要大于' + this.mintime / 1000 + '秒', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmText: '知道了' |
|
|
|
|
|
}) |
|
|
|
|
|
this.taskhide = true |
|
|
|
|
|
} else { |
|
|
|
|
|
if (isOverTask) { |
|
|
|
|
|
//this.gotoAdPage() |
|
|
|
|
|
console.log('广告点击观看完毕!') |
|
|
|
|
|
} |
|
|
|
|
|
this.starttask = true; |
|
|
|
|
|
console.log('this.starttask ',this.starttask) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
timer = 0; |
|
|
|
|
|
isplayOver = false; |
|
|
|
|
|
wx.showToast({ |
|
|
|
|
|
title: '您还没有看完视频,无法获取奖励', |
|
|
|
|
|
icon: 'none' |
|
|
|
|
|
}) |
|
|
|
|
|
this.done = false; |
|
|
|
|
|
this.starttask = false; |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//展示激励视频广告 |
|
|
|
|
|
showAdvertise(){ |
|
|
|
|
|
let videoAd = this.videoAd |
|
|
|
|
|
this.statTimer() |
|
|
|
|
|
videoAd.show().catch(() => { |
|
|
|
|
|
// 失败重试 |
|
|
|
|
|
videoAd.load() |
|
|
|
|
|
.then(() => videoAd.show()) |
|
|
|
|
|
.catch(err => { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '图片下载失败', |
|
|
|
|
|
content: '请稍后重试', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
complete: function() { |
|
|
|
|
|
that.done = true; |
|
|
|
|
|
that.starttask = true; |
|
|
|
|
|
// that.cuowu = true; |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 图片详情 |
|
|
// 图片详情 |
|
|
async getImgDetail(id) { |
|
|
async getImgDetail(id) { |
|
|
const res = await detailsTiktokImg(id) |
|
|
const res = await detailsTiktokImg(id) |
|
|
@ -392,7 +567,7 @@ |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
authDownload(url) { |
|
|
authDownload(url) { |
|
|
if (!this.userInfo) { |
|
|
if (!this.userInfo) { |
|
|
this.getUserInfoLogin(() => { |
|
|
this.getUserInfoLogin(() => { |
|
|
this.download(url) |
|
|
this.download(url) |
|
|
@ -402,121 +577,129 @@ |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
// 下载 |
|
|
// 下载 |
|
|
download(url) { |
|
|
download(url) { |
|
|
let that = this; |
|
|
let that = this; |
|
|
if (that.canDownload !== true) { |
|
|
if (that.canDownload !== true) { |
|
|
//满足可下载条件 |
|
|
//满足可下载条件 |
|
|
that.isDownload = true |
|
|
that.isDownload = true |
|
|
|
|
|
//展示激励视频广告 |
|
|
|
|
|
this.showAdvertise(); |
|
|
|
|
|
// const result = await tiktokAd.rewarded.show(); |
|
|
|
|
|
// console.log('结果为',result) |
|
|
|
|
|
// if(result.achieveStatus === true){ |
|
|
|
|
|
// console.log('视频完成状态为:',result.achieveStatus) |
|
|
|
|
|
// } |
|
|
uni.showLoading({ |
|
|
uni.showLoading({ |
|
|
title: '正在保存图片...' |
|
|
title: '正在保存图片...' |
|
|
}); |
|
|
}); |
|
|
|
|
|
console.log('test123') |
|
|
//获取用户的当前设置。获取相册权限 |
|
|
//获取用户的当前设置。获取相册权限 |
|
|
uni.getSetting({ |
|
|
// uni.getSetting({ |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
//如果没有相册权限 |
|
|
// //如果没有相册权限 |
|
|
if (!res.authSetting["scope.writePhotosAlbum"]) { |
|
|
// if (!res.authSetting["scope.writePhotosAlbum"]) { |
|
|
//向用户发起授权请求 |
|
|
// //向用户发起授权请求 |
|
|
uni.authorize({ |
|
|
// uni.authorize({ |
|
|
scope: "scope.album", |
|
|
// scope: "scope.album", |
|
|
success: () => { |
|
|
// success: () => { |
|
|
//授权成功保存图片到系统相册 |
|
|
// //授权成功保存图片到系统相册 |
|
|
uni.downloadFile({ |
|
|
// uni.downloadFile({ |
|
|
url, |
|
|
// url, |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
if (res.statusCode === 200) { |
|
|
// if (res.statusCode === 200) { |
|
|
uni.saveImageToPhotosAlbum({ |
|
|
// uni.saveImageToPhotosAlbum({ |
|
|
//图片路径,不支持网络图片路径 |
|
|
// //图片路径,不支持网络图片路径 |
|
|
filePath: res.tempFilePath, |
|
|
// filePath: res.tempFilePath, |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
|
|
|
|
|
|
}, |
|
|
// }, |
|
|
fail: (res) => { |
|
|
// fail: (res) => { |
|
|
return uni.showToast({ |
|
|
// return uni.showToast({ |
|
|
title: res.errMsg, |
|
|
// title: res.errMsg, |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
}, |
|
|
// }, |
|
|
complete: (res) => { |
|
|
// complete: (res) => { |
|
|
uni.hideLoading(); |
|
|
// uni.hideLoading(); |
|
|
if (res.errMsg !== "saveImageToPhotosAlbum:ok") { |
|
|
// if (res.errMsg !== "saveImageToPhotosAlbum:ok") { |
|
|
return uni.showToast({ |
|
|
// return uni.showToast({ |
|
|
title: "下载失败!", |
|
|
// title: "下载失败!", |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
} else { |
|
|
// } else { |
|
|
return uni |
|
|
// return uni |
|
|
.showToast({ |
|
|
// .showToast({ |
|
|
title: "下载成功!", |
|
|
// title: "下载成功!", |
|
|
icon: 'none', |
|
|
// icon: 'none', |
|
|
success() { |
|
|
// success() { |
|
|
//下载成功写入下载收益、邀请收益 |
|
|
// //下载成功写入下载收益、邀请收益 |
|
|
that.insertPreAdProfit(); |
|
|
// that.insertPreAdProfit(); |
|
|
that.insertPreInviteProfit(); |
|
|
// that.insertPreInviteProfit(); |
|
|
} |
|
|
// } |
|
|
}); |
|
|
// }); |
|
|
} |
|
|
// } |
|
|
}, |
|
|
// }, |
|
|
}); |
|
|
// }); |
|
|
} else { |
|
|
// } else { |
|
|
uni.showToast({ |
|
|
// uni.showToast({ |
|
|
title: "下载失败!", |
|
|
// title: "下载失败!", |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
} |
|
|
// } |
|
|
} |
|
|
// } |
|
|
}) |
|
|
// }) |
|
|
}, |
|
|
// }, |
|
|
//授权失败 |
|
|
// //授权失败 |
|
|
fail: () => { |
|
|
// fail: () => { |
|
|
uni.hideLoading(); |
|
|
// uni.hideLoading(); |
|
|
uni.showModal({ |
|
|
// uni.showModal({ |
|
|
title: "您已拒绝获取相册权限", |
|
|
// title: "您已拒绝获取相册权限", |
|
|
content: "是否进入权限管理,调整授权?", |
|
|
// content: "是否进入权限管理,调整授权?", |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
if (res.confirm) { |
|
|
// if (res.confirm) { |
|
|
//调起客户端小程序设置界面,返回用户设置的操作结果。(重新让用户授权) |
|
|
// //调起客户端小程序设置界面,返回用户设置的操作结果。(重新让用户授权) |
|
|
uni.openSetting({ |
|
|
// uni.openSetting({ |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
|
|
|
|
|
|
}, |
|
|
// }, |
|
|
}); |
|
|
// }); |
|
|
} else if (res.cancel) { |
|
|
// } else if (res.cancel) { |
|
|
return uni.showToast({ |
|
|
// return uni.showToast({ |
|
|
title: "已取消!", |
|
|
// title: "已取消!", |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
} |
|
|
// } |
|
|
}, |
|
|
// }, |
|
|
}); |
|
|
// }); |
|
|
}, |
|
|
// }, |
|
|
}); |
|
|
// }); |
|
|
} else { |
|
|
// } else { |
|
|
//如果已有相册权限,直接保存图片到系统相册 |
|
|
// //如果已有相册权限,直接保存图片到系统相册 |
|
|
uni.saveImageToPhotosAlbum({ |
|
|
// uni.saveImageToPhotosAlbum({ |
|
|
filePath: url, |
|
|
// filePath: url, |
|
|
success: (res) => { |
|
|
// success: (res) => { |
|
|
uni.hideLoading(); |
|
|
// uni.hideLoading(); |
|
|
return uni.showToast({ |
|
|
// return uni.showToast({ |
|
|
title: "保存成功!", |
|
|
// title: "保存成功!", |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
}, |
|
|
// }, |
|
|
fail: (res) => { |
|
|
// fail: (res) => { |
|
|
uni.hideLoading(); |
|
|
// uni.hideLoading(); |
|
|
return uni.showToast({ |
|
|
// return uni.showToast({ |
|
|
title: res.errMsg, |
|
|
// title: res.errMsg, |
|
|
icon: 'none' |
|
|
// icon: 'none' |
|
|
}); |
|
|
// }); |
|
|
}, |
|
|
// }, |
|
|
//无论成功失败都走的回调 |
|
|
// //无论成功失败都走的回调 |
|
|
complete: (res) => { |
|
|
// complete: (res) => { |
|
|
uni.hideLoading(); |
|
|
// uni.hideLoading(); |
|
|
}, |
|
|
// }, |
|
|
}); |
|
|
// }); |
|
|
} |
|
|
// } |
|
|
}, |
|
|
// }, |
|
|
fail: (res) => {}, |
|
|
// fail: (res) => {}, |
|
|
}); |
|
|
// }); |
|
|
} else { |
|
|
} else { |
|
|
//不满足可下载条件 canDownload为true状态 |
|
|
//不满足可下载条件 canDownload为true状态 |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
|
@ -526,6 +709,7 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 分享 |
|
|
// 分享 |
|
|
share() { |
|
|
share() { |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
|
|