Icon.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
  7. import NativeAdComponent, { NativeType } from "./NativeAdComponent";
  8. import SDK, { NodeAction } from "../SDK";
  9. import Utils from "../tools/Utils";
  10. import VivoAd from "./VivoAd";
  11. const { ccclass, property } = cc._decorator;
  12. @ccclass
  13. export default class Icon extends cc.Component {
  14. private _config;
  15. private _iconList : [] = [];
  16. private _nativeIconAd;
  17. public init(config){
  18. this._config = config;
  19. Utils.instance.log('创建Icon广告')
  20. }
  21. public showIconAd(id: number = 0, x: number, y: number) {
  22. let self = this;
  23. if (this._config == null) {
  24. return;
  25. }
  26. if (this._config.masterEnable != 1) {//插屏是否打开
  27. return;
  28. }
  29. if (this._config.iconAdEnable != 1) {//插屏是否打开
  30. return;
  31. }
  32. let adNodeList = JSON.parse(this._config.insertAdNodeList);
  33. //当前节点是否打开
  34. if (adNodeList[id].enable != 1) {
  35. return;
  36. }
  37. let nativeData = VivoAd.Instance.getVivoNativeData();
  38. if (nativeData == null || !nativeData.isReady()) {
  39. Utils.instance.log("---------showNativeIconAd 广告数据不存在-----");
  40. return;
  41. }
  42. let clickCallBack = () => {
  43. VivoAd.Instance.creatorNativeData();
  44. SDK.Instance.reportLog(NodeAction.NATIVE_CLICK, "原生icon点击");
  45. };
  46. let showCallBack = () => {
  47. //缓存下一条广告
  48. VivoAd.Instance.creatorNativeData();
  49. SDK.Instance.reportLog(NodeAction.NATIVE_SHOW, "原生icon展示");
  50. };
  51. let closeCallBack = () => {
  52. SDK.Instance.reportLog(NodeAction.NATIVE_CLOSE, "原生icon关闭");
  53. };
  54. let node = cc.director.getScene().children[0];
  55. let iconAd = node.getChildByName("iconAd");
  56. if (iconAd) {
  57. iconAd.removeFromParent();
  58. // return ;
  59. }
  60. Utils.instance.loadPrefabs("sdk/res/prefabs/NativeIconAd", (prefabs) => {
  61. let adNode = cc.instantiate(prefabs);
  62. self._nativeIconAd = adNode.addComponent(NativeAdComponent);
  63. self._nativeIconAd.initData(nativeData);
  64. self._nativeIconAd.listionCall(showCallBack, clickCallBack, closeCallBack);
  65. node.addChild(adNode, 1000, "icon")//加节点名,防止重复加广告
  66. // adNode.active = false;
  67. self._nativeIconAd.showAd(NativeType.ICON, self._config, x, y);
  68. });
  69. }
  70. public hideIcon(){
  71. if(this._nativeIconAd){
  72. this._nativeIconAd.hide();
  73. }
  74. }
  75. }