index.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {
  2. submitTask
  3. } from '~/api/global'
  4. var videoAd = null;
  5. Component({
  6. /**
  7. * 组件的属性列表
  8. */
  9. properties: {
  10. },
  11. lifetimes: {
  12. attached() {
  13. this.createVideo()
  14. }
  15. },
  16. /**
  17. * 组件的初始数据
  18. */
  19. data: {
  20. },
  21. /**
  22. * 组件的方法列表
  23. */
  24. methods: {
  25. rewardedVideo() {
  26. if (!videoAd) {
  27. this.createVideo()
  28. }
  29. videoAd.show().catch(err => {
  30. // 失败重试
  31. videoAd.load()
  32. .then(() => videoAd.show())
  33. })
  34. },
  35. // 创建广告对象并监听
  36. createVideo() {
  37. if (wx.createRewardedVideoAd) {
  38. // 加载激励视频广告
  39. videoAd = wx.createRewardedVideoAd({
  40. adUnitId: 'adunit-77f46b2dc73da123'
  41. })
  42. //捕捉错误
  43. videoAd.onError(err => {
  44. console.log(err);
  45. })
  46. // 监听关闭
  47. videoAd.onClose((status) => {
  48. videoAd.offClose()
  49. videoAd = null
  50. if (status && status.isEnded || status === undefined) {
  51. // 正常播放结束,下发奖励
  52. submitTask({
  53. id: 3
  54. }).then(res => {
  55. wx.showToast({
  56. icon: 'none',
  57. title: '观看成功!',
  58. })
  59. this.triggerEvent('taskOver')
  60. })
  61. } else {
  62. // 播放中途退出,进行提示
  63. wx.showToast({
  64. icon: 'none',
  65. title: '取消观看',
  66. })
  67. }
  68. })
  69. }
  70. }
  71. }
  72. })