@24jieqi/react-native-brayant-ad 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/dy/api/FullScreenVideo.js +12 -3
- package/lib/commonjs/dy/api/FullScreenVideo.js.map +1 -1
- package/lib/commonjs/dy/api/RewardVideo.js +12 -3
- package/lib/commonjs/dy/api/RewardVideo.js.map +1 -1
- package/lib/commonjs/dy/api/SplashAd.js +14 -2
- package/lib/commonjs/dy/api/SplashAd.js.map +1 -1
- package/lib/commonjs/dy/component/BannerAd.js +7 -9
- package/lib/commonjs/dy/component/BannerAd.js.map +1 -1
- package/lib/commonjs/dy/component/DrawFeedAd.js +8 -5
- package/lib/commonjs/dy/component/DrawFeedAd.js.map +1 -1
- package/lib/commonjs/dy/component/FeedAd.js +8 -5
- package/lib/commonjs/dy/component/FeedAd.js.map +1 -1
- package/lib/module/dy/api/FullScreenVideo.js +12 -3
- package/lib/module/dy/api/FullScreenVideo.js.map +1 -1
- package/lib/module/dy/api/RewardVideo.js +12 -3
- package/lib/module/dy/api/RewardVideo.js.map +1 -1
- package/lib/module/dy/api/SplashAd.js +14 -2
- package/lib/module/dy/api/SplashAd.js.map +1 -1
- package/lib/module/dy/component/BannerAd.js +7 -9
- package/lib/module/dy/component/BannerAd.js.map +1 -1
- package/lib/module/dy/component/DrawFeedAd.js +8 -5
- package/lib/module/dy/component/DrawFeedAd.js.map +1 -1
- package/lib/module/dy/component/FeedAd.js +8 -5
- package/lib/module/dy/component/FeedAd.js.map +1 -1
- package/lib/typescript/src/dy/api/FullScreenVideo.d.ts +1 -0
- package/lib/typescript/src/dy/api/FullScreenVideo.d.ts.map +1 -1
- package/lib/typescript/src/dy/api/RewardVideo.d.ts +1 -0
- package/lib/typescript/src/dy/api/RewardVideo.d.ts.map +1 -1
- package/lib/typescript/src/dy/api/SplashAd.d.ts +1 -0
- package/lib/typescript/src/dy/api/SplashAd.d.ts.map +1 -1
- package/lib/typescript/src/dy/component/BannerAd.d.ts +2 -2
- package/lib/typescript/src/dy/component/BannerAd.d.ts.map +1 -1
- package/lib/typescript/src/dy/component/DrawFeedAd.d.ts +2 -1
- package/lib/typescript/src/dy/component/DrawFeedAd.d.ts.map +1 -1
- package/lib/typescript/src/dy/component/FeedAd.d.ts +2 -2
- package/lib/typescript/src/dy/component/FeedAd.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dy/api/FullScreenVideo.ts +12 -4
- package/src/dy/api/RewardVideo.ts +12 -4
- package/src/dy/api/SplashAd.ts +14 -3
- package/src/dy/component/BannerAd.tsx +10 -12
- package/src/dy/component/DrawFeedAd.tsx +12 -9
- package/src/dy/component/FeedAd.tsx +14 -9
|
@@ -24,7 +24,6 @@ let AD_EVENT_TYPE = exports.AD_EVENT_TYPE = /*#__PURE__*/function (AD_EVENT_TYPE
|
|
|
24
24
|
AD_EVENT_TYPE["onAdClose"] = "onAdClose"; // 广告关闭监听
|
|
25
25
|
return AD_EVENT_TYPE;
|
|
26
26
|
}({});
|
|
27
|
-
let listenerCache = {};
|
|
28
27
|
var _default = props => {
|
|
29
28
|
const {
|
|
30
29
|
provider,
|
|
@@ -32,6 +31,8 @@ var _default = props => {
|
|
|
32
31
|
orientation = 'VERTICAL'
|
|
33
32
|
} = props;
|
|
34
33
|
const eventEmitter = new _reactNative.NativeEventEmitter(FullScreenVideoModule);
|
|
34
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
35
|
+
const listenerCache = {};
|
|
35
36
|
let result = FullScreenVideoModule.startAd({
|
|
36
37
|
codeid,
|
|
37
38
|
orientation,
|
|
@@ -40,15 +41,23 @@ var _default = props => {
|
|
|
40
41
|
return {
|
|
41
42
|
result,
|
|
42
43
|
subscribe: (type, callback) => {
|
|
44
|
+
// Remove previous listener for this type in this instance only
|
|
43
45
|
if (listenerCache[type]) {
|
|
44
46
|
var _listenerCache$type;
|
|
45
47
|
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
46
|
-
} else {
|
|
47
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
48
48
|
}
|
|
49
49
|
return listenerCache[type] = eventEmitter.addListener('FullScreenVideo-' + type, event => {
|
|
50
50
|
callback(event);
|
|
51
51
|
});
|
|
52
|
+
},
|
|
53
|
+
// Provide cleanup method
|
|
54
|
+
cleanup: () => {
|
|
55
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
56
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
57
|
+
});
|
|
58
|
+
Object.keys(listenerCache).forEach(key => {
|
|
59
|
+
delete listenerCache[key];
|
|
60
|
+
});
|
|
52
61
|
}
|
|
53
62
|
};
|
|
54
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","FullScreenVideoModule","NativeModules","AD_EVENT_TYPE","exports","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","FullScreenVideoModule","NativeModules","AD_EVENT_TYPE","exports","_default","props","provider","codeid","orientation","eventEmitter","NativeEventEmitter","listenerCache","result","startAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","cleanup","Object","values","forEach","subscription","keys","key","default"],"sourceRoot":"../../../../src","sources":["dy/api/FullScreenVideo.ts"],"mappings":";;;;;;AAMA,IAAAA,YAAA,GAAAC,OAAA;AANA;AACA;AACA;AACA;AACA;;AAIA,MAAM;EAAEC;AAAsB,CAAC,GAAGC,0BAAa;AAAC,IAEpCC,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EACE;EADfA,aAAa;EAEI;EAFjBA,aAAa;EAGE;EAHfA,aAAa,6BAIE;EAAA,OAJfA,aAAa;AAAA;AAAA,IAAAE,QAAA,GAiBTC,KAAsB,IAAK;EACzC,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,WAAW,GAAG;EAAW,CAAC,GAAGH,KAAK;EAC5D,MAAMI,YAAY,GAAG,IAAIC,+BAAkB,CAACV,qBAAqB,CAAC;EAClE;EACA,MAAMW,aAA4B,GAAG,CAAC,CAAkB;EACxD,IAAIC,MAAM,GAAGZ,qBAAqB,CAACa,OAAO,CAAC;IAAEN,MAAM;IAAEC,WAAW;IAAEF;EAAS,CAAC,CAAC;EAC7E,OAAO;IACLM,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAmB,EAAEC,QAA8B,KAAK;MAClE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGN,YAAY,CAACU,WAAW,CACpD,kBAAkB,GAAGJ,IAAI,EACxBK,KAAU,IAAK;QACdJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAC,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACZ,aAAa,CAAC,CAACa,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEP,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFI,MAAM,CAACI,IAAI,CAACf,aAAa,CAAC,CAACa,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOhB,aAAa,CAACgB,GAAG,CAAkB;MAC5C,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AAAAxB,OAAA,CAAAyB,OAAA,GAAAxB,QAAA","ignoreList":[]}
|
|
@@ -19,22 +19,31 @@ let AD_EVENT_TYPE = exports.AD_EVENT_TYPE = /*#__PURE__*/function (AD_EVENT_TYPE
|
|
|
19
19
|
AD_EVENT_TYPE["onAdClose"] = "onAdClose"; // 广告关闭监听
|
|
20
20
|
return AD_EVENT_TYPE;
|
|
21
21
|
}({});
|
|
22
|
-
let listenerCache = {};
|
|
23
22
|
function _default(info) {
|
|
24
23
|
const eventEmitter = new _reactNative.NativeEventEmitter(RewardVideoModule);
|
|
24
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
25
|
+
const listenerCache = {};
|
|
25
26
|
let result = RewardVideoModule.startAd(info);
|
|
26
27
|
return {
|
|
27
28
|
result,
|
|
28
29
|
subscribe: (type, callback) => {
|
|
30
|
+
// Remove previous listener for this type in this instance only
|
|
29
31
|
if (listenerCache[type]) {
|
|
30
32
|
var _listenerCache$type;
|
|
31
33
|
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
32
|
-
} else {
|
|
33
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
34
34
|
}
|
|
35
35
|
return listenerCache[type] = eventEmitter.addListener('RewardVideo-' + type, event => {
|
|
36
36
|
callback(event);
|
|
37
37
|
});
|
|
38
|
+
},
|
|
39
|
+
// Provide cleanup method
|
|
40
|
+
cleanup: () => {
|
|
41
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
42
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
43
|
+
});
|
|
44
|
+
Object.keys(listenerCache).forEach(key => {
|
|
45
|
+
delete listenerCache[key];
|
|
46
|
+
});
|
|
38
47
|
}
|
|
39
48
|
};
|
|
40
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","RewardVideoModule","NativeModules","AD_EVENT_TYPE","exports","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","RewardVideoModule","NativeModules","AD_EVENT_TYPE","exports","_default","info","eventEmitter","NativeEventEmitter","listenerCache","result","startAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","cleanup","Object","values","forEach","subscription","keys","key"],"sourceRoot":"../../../../src","sources":["dy/api/RewardVideo.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAkB,CAAC,GAAGC,0BAAa;AAAC,IAChCC,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EACE;EADfA,aAAa;EAEI;EAFjBA,aAAa;EAGE;EAHfA,aAAa,6BAIE;EAAA,OAJfA,aAAa;AAAA;AAeV,SAAAE,SAAUC,IAAgB,EAAE;EACzC,MAAMC,YAAY,GAAG,IAAIC,+BAAkB,CAACP,iBAAiB,CAAC;EAC9D;EACA,MAAMQ,aAA4B,GAAG,CAAC,CAAkB;EACxD,IAAIC,MAAM,GAAGT,iBAAiB,CAACU,OAAO,CAACL,IAAI,CAAC;EAC5C,OAAO;IACLI,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAmB,EAAEC,QAA8B,KAAK;MAClE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGN,YAAY,CAACU,WAAW,CACpD,cAAc,GAAGJ,IAAI,EACpBK,KAAU,IAAK;QACdJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAC,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACZ,aAAa,CAAC,CAACa,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEP,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFI,MAAM,CAACI,IAAI,CAACf,aAAa,CAAC,CAACa,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOhB,aAAa,CAACgB,GAAG,CAAkB;MAC5C,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -14,12 +14,13 @@ var _reactNative = require("react-native");
|
|
|
14
14
|
const {
|
|
15
15
|
SplashAd
|
|
16
16
|
} = _reactNative.NativeModules;
|
|
17
|
-
const listenerCache = {};
|
|
18
17
|
const dyLoadSplashAd = ({
|
|
19
18
|
codeid,
|
|
20
19
|
anim = 'default'
|
|
21
20
|
}) => {
|
|
22
21
|
const eventEmitter = new _reactNative.NativeEventEmitter(SplashAd);
|
|
22
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
23
|
+
const listenerCache = {};
|
|
23
24
|
let result = SplashAd.loadSplashAd({
|
|
24
25
|
codeid,
|
|
25
26
|
anim
|
|
@@ -27,14 +28,25 @@ const dyLoadSplashAd = ({
|
|
|
27
28
|
return {
|
|
28
29
|
result,
|
|
29
30
|
subscribe: (type, callback) => {
|
|
31
|
+
// Remove previous listener for this type in this instance only
|
|
30
32
|
if (listenerCache[type]) {
|
|
31
|
-
|
|
33
|
+
var _listenerCache$type;
|
|
34
|
+
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
32
35
|
}
|
|
33
36
|
return listenerCache[type] = eventEmitter.addListener('SplashAd-' + type, event => {
|
|
34
37
|
console.log('SplashAd event type ', type);
|
|
35
38
|
console.log('SplashAd event ', event);
|
|
36
39
|
callback(event);
|
|
37
40
|
});
|
|
41
|
+
},
|
|
42
|
+
// Provide cleanup method
|
|
43
|
+
cleanup: () => {
|
|
44
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
45
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
46
|
+
});
|
|
47
|
+
Object.keys(listenerCache).forEach(key => {
|
|
48
|
+
delete listenerCache[key];
|
|
49
|
+
});
|
|
38
50
|
}
|
|
39
51
|
};
|
|
40
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","SplashAd","NativeModules","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","SplashAd","NativeModules","dyLoadSplashAd","codeid","anim","eventEmitter","NativeEventEmitter","listenerCache","result","loadSplashAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","console","log","cleanup","Object","values","forEach","subscription","keys","key","exports"],"sourceRoot":"../../../../src","sources":["dy/api/SplashAd.ts"],"mappings":";;;;;;AAKA,IAAAA,YAAA,GAAAC,OAAA;AALA;AACA;AACA;AACA;AACA;;AAGA,MAAM;EAAEC;AAAS,CAAC,GAAGC,0BAAa;AAclC,MAAMC,cAAc,GAAGA,CAAC;EAAEC,MAAM;EAAEC,IAAI,GAAG;AAA+B,CAAC,KAAK;EAC5E,MAAMC,YAAY,GAAG,IAAIC,+BAAkB,CAACN,QAAQ,CAAC;EACrD;EACA,MAAMO,aAA4D,GAAG,CAAC,CAAC;EACvE,IAAIC,MAAM,GAAGR,QAAQ,CAACS,YAAY,CAAC;IAAEN,MAAM;IAAEC;EAAK,CAAC,CAAC;EACpD,OAAO;IACLI,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAyB,EAAEC,QAA8B,KAAK;MACxE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGN,YAAY,CAACU,WAAW,CACpD,WAAW,GAAGJ,IAAI,EACjBK,KAAU,IAAK;QACdC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEP,IAAI,CAAC;QACzCM,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEF,KAAK,CAAC;QACrCJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAG,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACd,aAAa,CAAC,CAACe,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAET,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFM,MAAM,CAACI,IAAI,CAACjB,aAAa,CAAC,CAACe,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOlB,aAAa,CAACkB,GAAG,CAAC;MAC3B,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAxB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -16,6 +16,9 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
|
|
|
16
16
|
ios: "- You have run 'pod install'\n",
|
|
17
17
|
default: ''
|
|
18
18
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '\nNote: BannerAd is currently only supported on Android platform.';
|
|
19
|
+
|
|
20
|
+
// Define native component at module level to avoid duplicate registration
|
|
21
|
+
const BannerAdNativeComponent = ComponentName && _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
|
|
19
22
|
const BannerAdView = props => {
|
|
20
23
|
const {
|
|
21
24
|
codeid,
|
|
@@ -38,15 +41,10 @@ const BannerAdView = props => {
|
|
|
38
41
|
return null;
|
|
39
42
|
}
|
|
40
43
|
if (!visible || dismissed) return null;
|
|
41
|
-
|
|
42
|
-
// Ensure ComponentName is defined for Android
|
|
43
|
-
if (!ComponentName) {
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
const BannerAdComponent = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : () => {
|
|
44
|
+
if (!BannerAdNativeComponent) {
|
|
47
45
|
throw new Error(LINKING_ERROR);
|
|
48
|
-
}
|
|
49
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
46
|
+
}
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(BannerAdNativeComponent, {
|
|
50
48
|
codeid: codeid,
|
|
51
49
|
adWidth: adWidth,
|
|
52
50
|
adHeight: height,
|
|
@@ -80,5 +78,5 @@ const BannerAdView = props => {
|
|
|
80
78
|
}
|
|
81
79
|
});
|
|
82
80
|
};
|
|
83
|
-
var _default = exports.default = BannerAdView;
|
|
81
|
+
var _default = exports.default = /*#__PURE__*/_react.default.memo(BannerAdView);
|
|
84
82
|
//# sourceMappingURL=BannerAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","Platform","select","android","ios","undefined","LINKING_ERROR","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","useState","height","setHeight","OS","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","Platform","select","android","ios","undefined","LINKING_ERROR","BannerAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","useState","height","setHeight","OS","Error","createElement","width","nativeEvent","_default","exports","React","memo"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
16
16
|
const {
|
|
17
17
|
DrawFeedAdModule
|
|
18
18
|
} = _reactNative.NativeModules;
|
|
19
|
-
const LINKING_ERROR = `The package 'react-native-
|
|
19
|
+
const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
20
20
|
ios: "- You have run 'pod install'\n",
|
|
21
21
|
default: ''
|
|
22
22
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
@@ -24,7 +24,10 @@ const ComponentName = 'DrawFeedAdViewManager';
|
|
|
24
24
|
const loadDrawFeedAd = info => {
|
|
25
25
|
DrawFeedAdModule.loadDrawFeedAd(info);
|
|
26
26
|
};
|
|
27
|
+
|
|
28
|
+
// Define native component at module level to avoid duplicate registration
|
|
27
29
|
exports.loadDrawFeedAd = loadDrawFeedAd;
|
|
30
|
+
const DrawFeedAdNativeComponent = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
|
|
28
31
|
const DrawFeedView = props => {
|
|
29
32
|
const {
|
|
30
33
|
codeid,
|
|
@@ -36,10 +39,10 @@ const DrawFeedView = props => {
|
|
|
36
39
|
} = props;
|
|
37
40
|
if (!visible) return null;
|
|
38
41
|
const styleObj = style ? style : styles.container;
|
|
39
|
-
|
|
42
|
+
if (!DrawFeedAdNativeComponent) {
|
|
40
43
|
throw new Error(LINKING_ERROR);
|
|
41
|
-
}
|
|
42
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
44
|
+
}
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(DrawFeedAdNativeComponent, {
|
|
43
46
|
codeid: codeid,
|
|
44
47
|
onAdError: e => {
|
|
45
48
|
console.log('onAdError DrawFeed', e.nativeEvent);
|
|
@@ -65,5 +68,5 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
65
68
|
width: '100%'
|
|
66
69
|
}
|
|
67
70
|
});
|
|
68
|
-
var _default = exports.default = DrawFeedView;
|
|
71
|
+
var _default = exports.default = /*#__PURE__*/_react.default.memo(DrawFeedView);
|
|
69
72
|
//# sourceMappingURL=DrawFeedAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","DrawFeedAdModule","NativeModules","LINKING_ERROR","Platform","select","ios","ComponentName","loadDrawFeedAd","info","exports","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","DrawFeedAdModule","NativeModules","LINKING_ERROR","Platform","select","ios","ComponentName","loadDrawFeedAd","info","exports","DrawFeedAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","undefined","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","styles","container","Error","createElement","console","log","nativeEvent","StyleSheet","create","flex","width","_default","React","memo"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOsB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAbtB;AACA;AACA;AACA;AACA;;AAUA,MAAM;EAAEG;AAAiB,CAAC,GAAGC,0BAAa;AAE1C,MAAMC,aAAa,GACjB,kFAAkF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEN,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMO,aAAa,GAAG,uBAAuB;AActC,MAAMC,cAAc,GAAIC,IAAuC,IAAK;EACzER,gBAAgB,CAACO,cAAc,CAACC,IAAI,CAAC;AACvC,CAAC;;AAED;AAAAC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AACA,MAAMG,yBAAyB,GAAGC,sBAAS,CAACC,oBAAoB,CAACN,aAAa,CAAC,IAAI,IAAI,GACnF,IAAAO,mCAAsB,EAAYP,aAAa,CAAC,GAChDQ,SAAS;AAEN,MAAMC,YAAY,GAAIC,KAAsB,IAAK;EACtD,MAAM;IACJC,MAAM;IACNC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,OAAO,GAAG,IAAI;IACdC;EACF,CAAC,GAAGN,KAAK;EACT,IAAI,CAACK,OAAO,EAAE,OAAO,IAAI;EAEzB,MAAME,QAAQ,GAAGD,KAAK,GAAGA,KAAK,GAAGE,MAAM,CAACC,SAAS;EAEjD,IAAI,CAACf,yBAAyB,EAAE;IAC9B,MAAM,IAAIgB,KAAK,CAACxB,aAAa,CAAC;EAChC;EAEA,oBACET,MAAA,CAAAM,OAAA,CAAA4B,aAAA,CAACjB,yBAAyB;IACxBO,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAGrB,CAAM,IAAK;MACrB+B,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEhC,CAAC,CAACiC,WAAW,CAAC;MAChDZ,SAAS,IAAIA,SAAS,CAACrB,CAAC,CAACiC,WAAW,CAAC;IACvC,CAAE;IACFV,SAAS,EAAGvB,CAAM,IAAK;MACrB+B,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEhC,CAAC,CAACiC,WAAW,CAAC;MAChDV,SAAS,IAAIA,SAAS,CAACvB,CAAC,CAACiC,WAAW,CAAC;IACvC,CAAE;IACFX,QAAQ,EAAGtB,CAAM,IAAK;MACpB+B,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEhC,CAAC,CAACiC,WAAW,CAAC;MAC/CX,QAAQ,IAAIA,QAAQ,CAACtB,CAAC,CAACiC,WAAW,CAAC;IACrC,CAAE;IACFR,KAAK,EAAE;MAAE,GAAGC;IAAS;EAAE,CACxB,CAAC;AAEN,CAAC;AAACd,OAAA,CAAAM,YAAA,GAAAA,YAAA;AAEF,MAAMS,MAAM,GAAGO,uBAAU,CAACC,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAA1B,OAAA,CAAAV,OAAA,gBAEYqC,cAAK,CAACC,IAAI,CAACtB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -14,10 +14,13 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
const ComponentName = 'FeedAdViewManager';
|
|
17
|
-
const LINKING_ERROR = `The package 'react-native-
|
|
17
|
+
const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
18
18
|
ios: "- You have run 'pod install'\n",
|
|
19
19
|
default: ''
|
|
20
20
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
21
|
+
|
|
22
|
+
// Define native component at module level to avoid duplicate registration
|
|
23
|
+
const FeedAdNativeComponent = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
|
|
21
24
|
const FeedAdView = props => {
|
|
22
25
|
const {
|
|
23
26
|
codeid,
|
|
@@ -34,10 +37,10 @@ const FeedAdView = props => {
|
|
|
34
37
|
|
|
35
38
|
// FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
|
|
36
39
|
if (!visible || closed) return null;
|
|
37
|
-
|
|
40
|
+
if (!FeedAdNativeComponent) {
|
|
38
41
|
throw new Error(LINKING_ERROR);
|
|
39
|
-
}
|
|
40
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
42
|
+
}
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(FeedAdNativeComponent, {
|
|
41
44
|
codeid: codeid
|
|
42
45
|
// 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
|
|
43
46
|
,
|
|
@@ -67,5 +70,5 @@ const FeedAdView = props => {
|
|
|
67
70
|
}
|
|
68
71
|
});
|
|
69
72
|
};
|
|
70
|
-
var _default = exports.default = FeedAdView;
|
|
73
|
+
var _default = exports.default = /*#__PURE__*/_react.default.memo(FeedAdView);
|
|
71
74
|
//# sourceMappingURL=FeedAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","LINKING_ERROR","Platform","select","ios","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","useState","height","setHeight","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","LINKING_ERROR","Platform","select","ios","FeedAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","undefined","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","useState","height","setHeight","Error","createElement","width","nativeEvent","_default","exports","React","memo"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,6 @@ export let AD_EVENT_TYPE = /*#__PURE__*/function (AD_EVENT_TYPE) {
|
|
|
18
18
|
AD_EVENT_TYPE["onAdClose"] = "onAdClose"; // 广告关闭监听
|
|
19
19
|
return AD_EVENT_TYPE;
|
|
20
20
|
}({});
|
|
21
|
-
let listenerCache = {};
|
|
22
21
|
export default props => {
|
|
23
22
|
const {
|
|
24
23
|
provider,
|
|
@@ -26,6 +25,8 @@ export default props => {
|
|
|
26
25
|
orientation = 'VERTICAL'
|
|
27
26
|
} = props;
|
|
28
27
|
const eventEmitter = new NativeEventEmitter(FullScreenVideoModule);
|
|
28
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
29
|
+
const listenerCache = {};
|
|
29
30
|
let result = FullScreenVideoModule.startAd({
|
|
30
31
|
codeid,
|
|
31
32
|
orientation,
|
|
@@ -34,15 +35,23 @@ export default props => {
|
|
|
34
35
|
return {
|
|
35
36
|
result,
|
|
36
37
|
subscribe: (type, callback) => {
|
|
38
|
+
// Remove previous listener for this type in this instance only
|
|
37
39
|
if (listenerCache[type]) {
|
|
38
40
|
var _listenerCache$type;
|
|
39
41
|
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
40
|
-
} else {
|
|
41
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
42
42
|
}
|
|
43
43
|
return listenerCache[type] = eventEmitter.addListener('FullScreenVideo-' + type, event => {
|
|
44
44
|
callback(event);
|
|
45
45
|
});
|
|
46
|
+
},
|
|
47
|
+
// Provide cleanup method
|
|
48
|
+
cleanup: () => {
|
|
49
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
50
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
51
|
+
});
|
|
52
|
+
Object.keys(listenerCache).forEach(key => {
|
|
53
|
+
delete listenerCache[key];
|
|
54
|
+
});
|
|
46
55
|
}
|
|
47
56
|
};
|
|
48
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","FullScreenVideoModule","AD_EVENT_TYPE","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","FullScreenVideoModule","AD_EVENT_TYPE","props","provider","codeid","orientation","eventEmitter","listenerCache","result","startAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","cleanup","Object","values","forEach","subscription","keys","key"],"sourceRoot":"../../../../src","sources":["dy/api/FullScreenVideo.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,cAAc;AAEhE,MAAM;EAAEC;AAAsB,CAAC,GAAGF,aAAa;AAE/C,WAAYG,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EACE;EADfA,aAAa;EAEI;EAFjBA,aAAa;EAGE;EAHfA,aAAa,6BAIE;EAAA,OAJfA,aAAa;AAAA;AAiBzB,eAAgBC,KAAsB,IAAK;EACzC,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,WAAW,GAAG;EAAW,CAAC,GAAGH,KAAK;EAC5D,MAAMI,YAAY,GAAG,IAAIP,kBAAkB,CAACC,qBAAqB,CAAC;EAClE;EACA,MAAMO,aAA4B,GAAG,CAAC,CAAkB;EACxD,IAAIC,MAAM,GAAGR,qBAAqB,CAACS,OAAO,CAAC;IAAEL,MAAM;IAAEC,WAAW;IAAEF;EAAS,CAAC,CAAC;EAC7E,OAAO;IACLK,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAmB,EAAEC,QAA8B,KAAK;MAClE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGL,YAAY,CAACS,WAAW,CACpD,kBAAkB,GAAGJ,IAAI,EACxBK,KAAU,IAAK;QACdJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAC,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACZ,aAAa,CAAC,CAACa,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEP,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFI,MAAM,CAACI,IAAI,CAACf,aAAa,CAAC,CAACa,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOhB,aAAa,CAACgB,GAAG,CAAkB;MAC5C,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -12,22 +12,31 @@ export let AD_EVENT_TYPE = /*#__PURE__*/function (AD_EVENT_TYPE) {
|
|
|
12
12
|
AD_EVENT_TYPE["onAdClose"] = "onAdClose"; // 广告关闭监听
|
|
13
13
|
return AD_EVENT_TYPE;
|
|
14
14
|
}({});
|
|
15
|
-
let listenerCache = {};
|
|
16
15
|
export default function (info) {
|
|
17
16
|
const eventEmitter = new NativeEventEmitter(RewardVideoModule);
|
|
17
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
18
|
+
const listenerCache = {};
|
|
18
19
|
let result = RewardVideoModule.startAd(info);
|
|
19
20
|
return {
|
|
20
21
|
result,
|
|
21
22
|
subscribe: (type, callback) => {
|
|
23
|
+
// Remove previous listener for this type in this instance only
|
|
22
24
|
if (listenerCache[type]) {
|
|
23
25
|
var _listenerCache$type;
|
|
24
26
|
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
25
|
-
} else {
|
|
26
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
27
27
|
}
|
|
28
28
|
return listenerCache[type] = eventEmitter.addListener('RewardVideo-' + type, event => {
|
|
29
29
|
callback(event);
|
|
30
30
|
});
|
|
31
|
+
},
|
|
32
|
+
// Provide cleanup method
|
|
33
|
+
cleanup: () => {
|
|
34
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
35
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
36
|
+
});
|
|
37
|
+
Object.keys(listenerCache).forEach(key => {
|
|
38
|
+
delete listenerCache[key];
|
|
39
|
+
});
|
|
31
40
|
}
|
|
32
41
|
};
|
|
33
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","RewardVideoModule","AD_EVENT_TYPE","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","RewardVideoModule","AD_EVENT_TYPE","info","eventEmitter","listenerCache","result","startAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","cleanup","Object","values","forEach","subscription","keys","key"],"sourceRoot":"../../../../src","sources":["dy/api/RewardVideo.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,cAAc;AAEhE,MAAM;EAAEC;AAAkB,CAAC,GAAGF,aAAa;AAC3C,WAAYG,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EACE;EADfA,aAAa;EAEI;EAFjBA,aAAa;EAGE;EAHfA,aAAa,6BAIE;EAAA,OAJfA,aAAa;AAAA;AAezB,eAAe,UAAUC,IAAgB,EAAE;EACzC,MAAMC,YAAY,GAAG,IAAIJ,kBAAkB,CAACC,iBAAiB,CAAC;EAC9D;EACA,MAAMI,aAA4B,GAAG,CAAC,CAAkB;EACxD,IAAIC,MAAM,GAAGL,iBAAiB,CAACM,OAAO,CAACJ,IAAI,CAAC;EAC5C,OAAO;IACLG,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAmB,EAAEC,QAA8B,KAAK;MAClE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGL,YAAY,CAACS,WAAW,CACpD,cAAc,GAAGJ,IAAI,EACpBK,KAAU,IAAK;QACdJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAC,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACZ,aAAa,CAAC,CAACa,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEP,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFI,MAAM,CAACI,IAAI,CAACf,aAAa,CAAC,CAACa,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOhB,aAAa,CAACgB,GAAG,CAAkB;MAC5C,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -7,12 +7,13 @@ import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
|
7
7
|
const {
|
|
8
8
|
SplashAd
|
|
9
9
|
} = NativeModules;
|
|
10
|
-
const listenerCache = {};
|
|
11
10
|
const dyLoadSplashAd = ({
|
|
12
11
|
codeid,
|
|
13
12
|
anim = 'default'
|
|
14
13
|
}) => {
|
|
15
14
|
const eventEmitter = new NativeEventEmitter(SplashAd);
|
|
15
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
16
|
+
const listenerCache = {};
|
|
16
17
|
let result = SplashAd.loadSplashAd({
|
|
17
18
|
codeid,
|
|
18
19
|
anim
|
|
@@ -20,14 +21,25 @@ const dyLoadSplashAd = ({
|
|
|
20
21
|
return {
|
|
21
22
|
result,
|
|
22
23
|
subscribe: (type, callback) => {
|
|
24
|
+
// Remove previous listener for this type in this instance only
|
|
23
25
|
if (listenerCache[type]) {
|
|
24
|
-
|
|
26
|
+
var _listenerCache$type;
|
|
27
|
+
(_listenerCache$type = listenerCache[type]) === null || _listenerCache$type === void 0 || _listenerCache$type.remove();
|
|
25
28
|
}
|
|
26
29
|
return listenerCache[type] = eventEmitter.addListener('SplashAd-' + type, event => {
|
|
27
30
|
console.log('SplashAd event type ', type);
|
|
28
31
|
console.log('SplashAd event ', event);
|
|
29
32
|
callback(event);
|
|
30
33
|
});
|
|
34
|
+
},
|
|
35
|
+
// Provide cleanup method
|
|
36
|
+
cleanup: () => {
|
|
37
|
+
Object.values(listenerCache).forEach(subscription => {
|
|
38
|
+
subscription === null || subscription === void 0 || subscription.remove();
|
|
39
|
+
});
|
|
40
|
+
Object.keys(listenerCache).forEach(key => {
|
|
41
|
+
delete listenerCache[key];
|
|
42
|
+
});
|
|
31
43
|
}
|
|
32
44
|
};
|
|
33
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","SplashAd","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","SplashAd","dyLoadSplashAd","codeid","anim","eventEmitter","listenerCache","result","loadSplashAd","subscribe","type","callback","_listenerCache$type","remove","addListener","event","console","log","cleanup","Object","values","forEach","subscription","keys","key"],"sourceRoot":"../../../../src","sources":["dy/api/SplashAd.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,cAAc;AAEhE,MAAM;EAAEC;AAAS,CAAC,GAAGF,aAAa;AAclC,MAAMG,cAAc,GAAGA,CAAC;EAAEC,MAAM;EAAEC,IAAI,GAAG;AAA+B,CAAC,KAAK;EAC5E,MAAMC,YAAY,GAAG,IAAIL,kBAAkB,CAACC,QAAQ,CAAC;EACrD;EACA,MAAMK,aAA4D,GAAG,CAAC,CAAC;EACvE,IAAIC,MAAM,GAAGN,QAAQ,CAACO,YAAY,CAAC;IAAEL,MAAM;IAAEC;EAAK,CAAC,CAAC;EACpD,OAAO;IACLG,MAAM;IACNE,SAAS,EAAEA,CAACC,IAAyB,EAAEC,QAA8B,KAAK;MACxE;MACA,IAAIL,aAAa,CAACI,IAAI,CAAC,EAAE;QAAA,IAAAE,mBAAA;QACvB,CAAAA,mBAAA,GAAAN,aAAa,CAACI,IAAI,CAAC,cAAAE,mBAAA,eAAnBA,mBAAA,CAAqBC,MAAM,CAAC,CAAC;MAC/B;MACA,OAAQP,aAAa,CAACI,IAAI,CAAC,GAAGL,YAAY,CAACS,WAAW,CACpD,WAAW,GAAGJ,IAAI,EACjBK,KAAU,IAAK;QACdC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEP,IAAI,CAAC;QACzCM,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEF,KAAK,CAAC;QACrCJ,QAAQ,CAACI,KAAK,CAAC;MACjB,CACF,CAAC;IACH,CAAC;IACD;IACAG,OAAO,EAAEA,CAAA,KAAM;MACbC,MAAM,CAACC,MAAM,CAACd,aAAa,CAAC,CAACe,OAAO,CAAEC,YAAY,IAAK;QACrDA,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAET,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC;MACFM,MAAM,CAACI,IAAI,CAACjB,aAAa,CAAC,CAACe,OAAO,CAAEG,GAAG,IAAK;QAC1C,OAAOlB,aAAa,CAACkB,GAAG,CAAC;MAC3B,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AACD,SAAStB,cAAc","ignoreList":[]}
|
|
@@ -9,6 +9,9 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
|
|
|
9
9
|
ios: "- You have run 'pod install'\n",
|
|
10
10
|
default: ''
|
|
11
11
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '\nNote: BannerAd is currently only supported on Android platform.';
|
|
12
|
+
|
|
13
|
+
// Define native component at module level to avoid duplicate registration
|
|
14
|
+
const BannerAdNativeComponent = ComponentName && UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
|
|
12
15
|
const BannerAdView = props => {
|
|
13
16
|
const {
|
|
14
17
|
codeid,
|
|
@@ -31,15 +34,10 @@ const BannerAdView = props => {
|
|
|
31
34
|
return null;
|
|
32
35
|
}
|
|
33
36
|
if (!visible || dismissed) return null;
|
|
34
|
-
|
|
35
|
-
// Ensure ComponentName is defined for Android
|
|
36
|
-
if (!ComponentName) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
const BannerAdComponent = UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : () => {
|
|
37
|
+
if (!BannerAdNativeComponent) {
|
|
40
38
|
throw new Error(LINKING_ERROR);
|
|
41
|
-
}
|
|
42
|
-
return /*#__PURE__*/React.createElement(
|
|
39
|
+
}
|
|
40
|
+
return /*#__PURE__*/React.createElement(BannerAdNativeComponent, {
|
|
43
41
|
codeid: codeid,
|
|
44
42
|
adWidth: adWidth,
|
|
45
43
|
adHeight: height,
|
|
@@ -73,5 +71,5 @@ const BannerAdView = props => {
|
|
|
73
71
|
}
|
|
74
72
|
});
|
|
75
73
|
};
|
|
76
|
-
export default BannerAdView;
|
|
74
|
+
export default /*#__PURE__*/React.memo(BannerAdView);
|
|
77
75
|
//# sourceMappingURL=BannerAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Platform","requireNativeComponent","UIManager","ComponentName","select","android","ios","undefined","LINKING_ERROR","default","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","height","setHeight","OS","
|
|
1
|
+
{"version":3,"names":["React","useState","Platform","requireNativeComponent","UIManager","ComponentName","select","android","ios","undefined","LINKING_ERROR","default","BannerAdNativeComponent","getViewManagerConfig","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","height","setHeight","OS","Error","createElement","width","e","nativeEvent","memo"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,QAAQ,EAAEC,sBAAsB,EAAEC,SAAS,QAAQ,cAAc;AAG1E;AACA,MAAMC,aAAa,GAAGH,QAAQ,CAACI,MAAM,CAAC;EACpCC,OAAO,EAAE,4BAA4B;EACrCC,GAAG,EAAEC;AACP,CAAC,CAAuB;AAgBxB,MAAMC,aAAa,GACjB,kFAAkF,GAClFR,QAAQ,CAACI,MAAM,CAAC;EAAEE,GAAG,EAAE,gCAAgC;EAAEG,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,mEAAmE;;AAErE;AACA,MAAMC,uBAAuB,GAAGP,aAAa,IAAID,SAAS,CAACS,oBAAoB,CAACR,aAAa,CAAC,IAAI,IAAI,GAClGF,sBAAsB,CAAgBE,aAAa,CAAC,GACpDI,SAAS;AAEb,MAAMK,YAAY,GAAIC,KAAoB,IAAK;EAC7C,MAAM;IACJC,MAAM;IACNC,KAAK;IACLC,OAAO,GAAG,GAAG;IACbC,QAAQ,GAAG,EAAE;IACbC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,SAAS;IACTC,QAAQ;IACRC,WAAW;IACXC,OAAO,GAAG;EACZ,CAAC,GAAGX,KAAK;EAET,MAAM,CAACY,SAAS,EAAEC,YAAY,CAAC,GAAG3B,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAAC4B,MAAM,EAAEC,SAAS,CAAC,GAAG7B,QAAQ,CAACkB,QAAQ,CAAC;;EAE9C;EACA,IAAIjB,QAAQ,CAAC6B,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,IAAI;EACb;EAEA,IAAI,CAACL,OAAO,IAAIC,SAAS,EAAE,OAAO,IAAI;EAEtC,IAAI,CAACf,uBAAuB,EAAE;IAC5B,MAAM,IAAIoB,KAAK,CAACtB,aAAa,CAAC;EAChC;EAEA,oBACEV,KAAA,CAAAiC,aAAA,CAACrB,uBAAuB;IACtBI,MAAM,EAAEA,MAAO;IACfE,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEU,MAAO;IACjBZ,KAAK,EAAE;MAAEiB,KAAK,EAAEhB,OAAO;MAAEW,MAAM;MAAE,GAAGZ;IAAM,CAAE;IAC5CI,SAAS,EAAGc,CAAM,IAAK;MACrBd,SAAS,IAAIA,SAAS,CAACc,CAAC,CAACC,WAAW,CAAC;IACvC,CAAE;IACFb,SAAS,EAAGY,CAAM,IAAK;MACrBZ,SAAS,IAAIA,SAAS,CAACY,CAAC,CAACC,WAAW,CAAC;IACvC,CAAE;IACFd,WAAW,EAAGa,CAAM,IAAK;MACvBP,YAAY,CAAC,IAAI,CAAC;MAClBN,WAAW,IAAIA,WAAW,CAACa,CAAC,CAACC,WAAW,CAAC;IAC3C,CAAE;IACFZ,QAAQ,EAAGW,CAAM,IAAK;MACpBX,QAAQ,IAAIA,QAAQ,CAACW,CAAC,CAACC,WAAW,CAAC;IACrC,CAAE;IACFhB,iBAAiB,EAAGe,CAAM,IAAK;MAC7B,IAAIA,CAAC,CAACC,WAAW,CAACP,MAAM,EAAE;QACxBC,SAAS,CAACK,CAAC,CAACC,WAAW,CAACP,MAAM,GAAG,EAAE,CAAC;QACpCT,iBAAiB,IAAIA,iBAAiB,CAACe,CAAC,CAACC,WAAW,CAAC;MACvD;IACF,CAAE;IACFX,WAAW,EAAGU,CAAM,IAAK;MACvBP,YAAY,CAAC,IAAI,CAAC;MAClBH,WAAW,IAAIA,WAAW,CAACU,CAAC,CAACC,WAAW,CAAC;IAC3C;EAAE,CACH,CAAC;AAEN,CAAC;AAED,4BAAepC,KAAK,CAACqC,IAAI,CAACvB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import { UIManager, StyleSheet, NativeModules, Platform, requireNativeComponent
|
|
|
8
8
|
const {
|
|
9
9
|
DrawFeedAdModule
|
|
10
10
|
} = NativeModules;
|
|
11
|
-
const LINKING_ERROR = `The package 'react-native-
|
|
11
|
+
const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
12
12
|
ios: "- You have run 'pod install'\n",
|
|
13
13
|
default: ''
|
|
14
14
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
@@ -16,6 +16,9 @@ const ComponentName = 'DrawFeedAdViewManager';
|
|
|
16
16
|
export const loadDrawFeedAd = info => {
|
|
17
17
|
DrawFeedAdModule.loadDrawFeedAd(info);
|
|
18
18
|
};
|
|
19
|
+
|
|
20
|
+
// Define native component at module level to avoid duplicate registration
|
|
21
|
+
const DrawFeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
|
|
19
22
|
export const DrawFeedView = props => {
|
|
20
23
|
const {
|
|
21
24
|
codeid,
|
|
@@ -27,10 +30,10 @@ export const DrawFeedView = props => {
|
|
|
27
30
|
} = props;
|
|
28
31
|
if (!visible) return null;
|
|
29
32
|
const styleObj = style ? style : styles.container;
|
|
30
|
-
|
|
33
|
+
if (!DrawFeedAdNativeComponent) {
|
|
31
34
|
throw new Error(LINKING_ERROR);
|
|
32
|
-
}
|
|
33
|
-
return /*#__PURE__*/React.createElement(
|
|
35
|
+
}
|
|
36
|
+
return /*#__PURE__*/React.createElement(DrawFeedAdNativeComponent, {
|
|
34
37
|
codeid: codeid,
|
|
35
38
|
onAdError: e => {
|
|
36
39
|
console.log('onAdError DrawFeed', e.nativeEvent);
|
|
@@ -55,5 +58,5 @@ const styles = StyleSheet.create({
|
|
|
55
58
|
width: '100%'
|
|
56
59
|
}
|
|
57
60
|
});
|
|
58
|
-
export default DrawFeedView;
|
|
61
|
+
export default /*#__PURE__*/React.memo(DrawFeedView);
|
|
59
62
|
//# sourceMappingURL=DrawFeedAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","UIManager","StyleSheet","NativeModules","Platform","requireNativeComponent","DrawFeedAdModule","LINKING_ERROR","select","ios","default","ComponentName","loadDrawFeedAd","info","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","styles","container","
|
|
1
|
+
{"version":3,"names":["React","UIManager","StyleSheet","NativeModules","Platform","requireNativeComponent","DrawFeedAdModule","LINKING_ERROR","select","ios","default","ComponentName","loadDrawFeedAd","info","DrawFeedAdNativeComponent","getViewManagerConfig","undefined","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","styles","container","Error","createElement","e","console","log","nativeEvent","create","flex","width","memo"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,SAAS,EACTC,UAAU,EACVC,aAAa,EACbC,QAAQ,EACRC,sBAAsB,QACjB,cAAc;AACrB,MAAM;EAAEC;AAAiB,CAAC,GAAGH,aAAa;AAE1C,MAAMI,aAAa,GACjB,kFAAkF,GAClFH,QAAQ,CAACI,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,aAAa,GAAG,uBAAuB;AAc7C,OAAO,MAAMC,cAAc,GAAIC,IAAuC,IAAK;EACzEP,gBAAgB,CAACM,cAAc,CAACC,IAAI,CAAC;AACvC,CAAC;;AAED;AACA,MAAMC,yBAAyB,GAAGb,SAAS,CAACc,oBAAoB,CAACJ,aAAa,CAAC,IAAI,IAAI,GACnFN,sBAAsB,CAAYM,aAAa,CAAC,GAChDK,SAAS;AAEb,OAAO,MAAMC,YAAY,GAAIC,KAAsB,IAAK;EACtD,MAAM;IACJC,MAAM;IACNC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,OAAO,GAAG,IAAI;IACdC;EACF,CAAC,GAAGN,KAAK;EACT,IAAI,CAACK,OAAO,EAAE,OAAO,IAAI;EAEzB,MAAME,QAAQ,GAAGD,KAAK,GAAGA,KAAK,GAAGE,MAAM,CAACC,SAAS;EAEjD,IAAI,CAACb,yBAAyB,EAAE;IAC9B,MAAM,IAAIc,KAAK,CAACrB,aAAa,CAAC;EAChC;EAEA,oBACEP,KAAA,CAAA6B,aAAA,CAACf,yBAAyB;IACxBK,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAGU,CAAM,IAAK;MACrBC,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEF,CAAC,CAACG,WAAW,CAAC;MAChDb,SAAS,IAAIA,SAAS,CAACU,CAAC,CAACG,WAAW,CAAC;IACvC,CAAE;IACFX,SAAS,EAAGQ,CAAM,IAAK;MACrBC,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEF,CAAC,CAACG,WAAW,CAAC;MAChDX,SAAS,IAAIA,SAAS,CAACQ,CAAC,CAACG,WAAW,CAAC;IACvC,CAAE;IACFZ,QAAQ,EAAGS,CAAM,IAAK;MACpBC,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,CAAC,CAACG,WAAW,CAAC;MAC/CZ,QAAQ,IAAIA,QAAQ,CAACS,CAAC,CAACG,WAAW,CAAC;IACrC,CAAE;IACFT,KAAK,EAAE;MAAE,GAAGC;IAAS;EAAE,CACxB,CAAC;AAEN,CAAC;AAED,MAAMC,MAAM,GAAGxB,UAAU,CAACgC,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,4BAAepC,KAAK,CAACqC,IAAI,CAACpB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
import { Platform, requireNativeComponent, UIManager } from 'react-native';
|
|
8
8
|
const ComponentName = 'FeedAdViewManager';
|
|
9
|
-
const LINKING_ERROR = `The package 'react-native-
|
|
9
|
+
const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
10
10
|
ios: "- You have run 'pod install'\n",
|
|
11
11
|
default: ''
|
|
12
12
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
13
|
+
|
|
14
|
+
// Define native component at module level to avoid duplicate registration
|
|
15
|
+
const FeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
|
|
13
16
|
const FeedAdView = props => {
|
|
14
17
|
const {
|
|
15
18
|
codeid,
|
|
@@ -26,10 +29,10 @@ const FeedAdView = props => {
|
|
|
26
29
|
|
|
27
30
|
// FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
|
|
28
31
|
if (!visible || closed) return null;
|
|
29
|
-
|
|
32
|
+
if (!FeedAdNativeComponent) {
|
|
30
33
|
throw new Error(LINKING_ERROR);
|
|
31
|
-
}
|
|
32
|
-
return /*#__PURE__*/React.createElement(
|
|
34
|
+
}
|
|
35
|
+
return /*#__PURE__*/React.createElement(FeedAdNativeComponent, {
|
|
33
36
|
codeid: codeid
|
|
34
37
|
// 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
|
|
35
38
|
,
|
|
@@ -59,5 +62,5 @@ const FeedAdView = props => {
|
|
|
59
62
|
}
|
|
60
63
|
});
|
|
61
64
|
};
|
|
62
|
-
export default FeedAdView;
|
|
65
|
+
export default /*#__PURE__*/React.memo(FeedAdView);
|
|
63
66
|
//# sourceMappingURL=FeedAd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Platform","requireNativeComponent","UIManager","ComponentName","LINKING_ERROR","select","ios","default","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","height","setHeight","
|
|
1
|
+
{"version":3,"names":["React","useState","Platform","requireNativeComponent","UIManager","ComponentName","LINKING_ERROR","select","ios","default","FeedAdNativeComponent","getViewManagerConfig","undefined","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","height","setHeight","Error","createElement","width","e","nativeEvent","memo"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,QAAQ,EAAEC,sBAAsB,EAAEC,SAAS,QAAQ,cAAc;AAG1E,MAAMC,aAAa,GAAG,mBAAmB;AAazC,MAAMC,aAAa,GACjB,kFAAkF,GAClFJ,QAAQ,CAACK,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,qBAAqB,GAAGN,SAAS,CAACO,oBAAoB,CAACN,aAAa,CAAC,IAAI,IAAI,GAC/EF,sBAAsB,CAAcE,aAAa,CAAC,GAClDO,SAAS;AAEb,MAAMC,UAAU,GAAIC,KAAkB,IAAK;EACzC,MAAM;IACJC,MAAM;IACNC,KAAK;IACLC,OAAO,GAAG,GAAG;IACbC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO,GAAG;EACZ,CAAC,GAAGR,KAAK;EAET,MAAM,CAACS,MAAM,EAAEC,SAAS,CAAC,GAAGvB,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAACwB,MAAM,EAAEC,SAAS,CAAC,GAAGzB,QAAQ,CAAC,CAAC,CAAC;;EAEvC;EACA,IAAI,CAACqB,OAAO,IAAIC,MAAM,EAAE,OAAO,IAAI;EAEnC,IAAI,CAACb,qBAAqB,EAAE;IAC1B,MAAM,IAAIiB,KAAK,CAACrB,aAAa,CAAC;EAChC;EAEA,oBACEN,KAAA,CAAA4B,aAAA,CAAClB,qBAAqB;IACpBK,MAAM,EAAEA;IACR;IAAA;IACAE,OAAO,EAAEA,OAAO,GAAG;IACnB;IAAA;IACAD,KAAK,EAAE;MAAEa,KAAK,EAAEZ,OAAO;MAAEQ,MAAM;MAAE,GAAGT;IAAM,CAAE;IAC5CG,SAAS,EAAGW,CAAM,IAAK;MACrBX,SAAS,IAAIA,SAAS,CAACW,CAAC,CAACC,WAAW,CAAC;IACvC,CAAE;IACFV,SAAS,EAAGS,CAAM,IAAK;MACrBT,SAAS,IAAIA,SAAS,CAACS,CAAC,CAACC,WAAW,CAAC;IACvC,CAAE;IACFX,SAAS,EAAGU,CAAM,IAAK;MACrBN,SAAS,CAAC,IAAI,CAAC;MACfJ,SAAS,IAAIA,SAAS,CAACU,CAAC,CAACC,WAAW,CAAC;IACvC,CAAE;IACFb,UAAU,EAAGY,CAAM,IAAK;MACtB,IAAIA,CAAC,CAACC,WAAW,CAACN,MAAM,EAAE;QACxBC,SAAS,CAACI,CAAC,CAACC,WAAW,CAACN,MAAM,GAAG,EAAE,CAAC;QACpCP,UAAU,IAAIA,UAAU,CAACY,CAAC,CAACC,WAAW,CAAC;MACzC;IACF;EAAE,CACH,CAAC;AAEN,CAAC;AAED,4BAAe/B,KAAK,CAACgC,IAAI,CAACnB,UAAU,CAAC","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ interface FullScreenProps {
|
|
|
17
17
|
declare const _default: (props: FullScreenProps) => {
|
|
18
18
|
result: any;
|
|
19
19
|
subscribe: (type: AD_EVENT_TYPE, callback: (event: any) => void) => import("react-native").EmitterSubscription;
|
|
20
|
+
cleanup: () => void;
|
|
20
21
|
};
|
|
21
22
|
export default _default;
|
|
22
23
|
//# sourceMappingURL=FullScreenVideo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullScreenVideo.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/FullScreenVideo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oBAAY,aAAa;IACvB,SAAS,cAAc,CAAE,WAAW;IACpC,UAAU,eAAe,CAAE,WAAW;IACtC,SAAS,cAAc,CAAE,UAAU;IACnC,SAAS,cAAc;CACxB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"FullScreenVideo.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/FullScreenVideo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,oBAAY,aAAa;IACvB,SAAS,cAAc,CAAE,WAAW;IACpC,UAAU,eAAe,CAAE,WAAW;IACtC,SAAS,cAAc,CAAE,UAAU;IACnC,SAAS,cAAc;CACxB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC/B;yBAMe,OAAO,eAAe;;sBAQhB,aAAa,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI;;;AARnE,wBA8BE"}
|
|
@@ -10,6 +10,7 @@ type rewardInfo = {
|
|
|
10
10
|
export default function (info: rewardInfo): {
|
|
11
11
|
result: any;
|
|
12
12
|
subscribe: (type: AD_EVENT_TYPE, callback: (event: any) => void) => import("react-native").EmitterSubscription;
|
|
13
|
+
cleanup: () => void;
|
|
13
14
|
};
|
|
14
15
|
export {};
|
|
15
16
|
//# sourceMappingURL=RewardVideo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardVideo.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/RewardVideo.ts"],"names":[],"mappings":"AAGA,oBAAY,aAAa;IACvB,SAAS,cAAc,CAAE,WAAW;IACpC,UAAU,eAAe,CAAE,WAAW;IACtC,SAAS,cAAc,CAAE,UAAU;IACnC,SAAS,cAAc;CACxB;
|
|
1
|
+
{"version":3,"file":"RewardVideo.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/RewardVideo.ts"],"names":[],"mappings":"AAGA,oBAAY,aAAa;IACvB,SAAS,cAAc,CAAE,WAAW;IACpC,UAAU,eAAe,CAAE,WAAW;IACtC,SAAS,cAAc,CAAE,UAAU;IACnC,SAAS,cAAc;CACxB;AAMD,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,IAAI,EAAE,UAAU;;sBAOnB,aAAa,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI;;EAsBlE"}
|
|
@@ -12,6 +12,7 @@ export interface SPLASHAD_PROPS_TYPE {
|
|
|
12
12
|
declare const dyLoadSplashAd: ({ codeid, anim }: SPLASHAD_PROPS_TYPE) => {
|
|
13
13
|
result: any;
|
|
14
14
|
subscribe: (type: keyof AD_EVENT_TYPE, callback: (event: any) => void) => import("react-native").EmitterSubscription;
|
|
15
|
+
cleanup: () => void;
|
|
15
16
|
};
|
|
16
17
|
export { dyLoadSplashAd };
|
|
17
18
|
//# sourceMappingURL=SplashAd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplashAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/SplashAd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SplashAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/api/SplashAd.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;CAC3D;AAED,QAAA,MAAM,cAAc,GAAI,kBAA8B,mBAAmB;;sBAOnD,MAAM,aAAa,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI;;CAwBxE,CAAC;AACF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -13,6 +13,6 @@ export interface BannerAdProps {
|
|
|
13
13
|
onAdShow?: Function;
|
|
14
14
|
onAdDislike?: Function;
|
|
15
15
|
}
|
|
16
|
-
declare const
|
|
17
|
-
export default
|
|
16
|
+
declare const _default: React.MemoExoticComponent<(props: BannerAdProps) => React.JSX.Element | null>;
|
|
17
|
+
export default _default;
|
|
18
18
|
//# sourceMappingURL=BannerAd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQ9C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQ9C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;0DAc4B,aAAa;AA8D1C,wBAAwC"}
|
|
@@ -19,5 +19,6 @@ export declare const loadDrawFeedAd: (info: {
|
|
|
19
19
|
codeid: string;
|
|
20
20
|
}) => void;
|
|
21
21
|
export declare const DrawFeedView: (props: DrawFeedAdProps) => React.JSX.Element | null;
|
|
22
|
-
|
|
22
|
+
declare const _default: React.MemoExoticComponent<(props: DrawFeedAdProps) => React.JSX.Element | null>;
|
|
23
|
+
export default _default;
|
|
23
24
|
//# sourceMappingURL=DrawFeedAd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawFeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/DrawFeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,cAAc,CAAC;AAWtB,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,SAErE,CAAC;
|
|
1
|
+
{"version":3,"file":"DrawFeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/DrawFeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,cAAc,CAAC;AAWtB,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,SAErE,CAAC;AAOF,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,6BAmClD,CAAC;0DAnCkC,eAAe;AA4CnD,wBAAwC"}
|
|
@@ -15,6 +15,6 @@ export interface FeedAdProps {
|
|
|
15
15
|
onAdClose?: Function;
|
|
16
16
|
onAdClick?: Function;
|
|
17
17
|
}
|
|
18
|
-
declare const
|
|
19
|
-
export default
|
|
18
|
+
declare const _default: React.MemoExoticComponent<(props: FeedAdProps) => React.JSX.Element | null>;
|
|
19
|
+
export default _default;
|
|
20
20
|
//# sourceMappingURL=FeedAd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/FeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"FeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/FeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;0DAa0B,WAAW;AAiDtC,wBAAsC"}
|
package/package.json
CHANGED
|
@@ -25,19 +25,18 @@ type ListenerCache = {
|
|
|
25
25
|
[K in AD_EVENT_TYPE]: EventSubscription | undefined;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
let listenerCache: ListenerCache = {} as ListenerCache;
|
|
29
|
-
|
|
30
28
|
export default (props: FullScreenProps) => {
|
|
31
29
|
const { provider, codeid, orientation = 'VERTICAL' } = props;
|
|
32
30
|
const eventEmitter = new NativeEventEmitter(FullScreenVideoModule);
|
|
31
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
32
|
+
const listenerCache: ListenerCache = {} as ListenerCache;
|
|
33
33
|
let result = FullScreenVideoModule.startAd({ codeid, orientation, provider });
|
|
34
34
|
return {
|
|
35
35
|
result,
|
|
36
36
|
subscribe: (type: AD_EVENT_TYPE, callback: (event: any) => void) => {
|
|
37
|
+
// Remove previous listener for this type in this instance only
|
|
37
38
|
if (listenerCache[type]) {
|
|
38
39
|
listenerCache[type]?.remove();
|
|
39
|
-
} else {
|
|
40
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
41
40
|
}
|
|
42
41
|
return (listenerCache[type] = eventEmitter.addListener(
|
|
43
42
|
'FullScreenVideo-' + type,
|
|
@@ -46,5 +45,14 @@ export default (props: FullScreenProps) => {
|
|
|
46
45
|
}
|
|
47
46
|
));
|
|
48
47
|
},
|
|
48
|
+
// Provide cleanup method
|
|
49
|
+
cleanup: () => {
|
|
50
|
+
Object.values(listenerCache).forEach((subscription) => {
|
|
51
|
+
subscription?.remove();
|
|
52
|
+
});
|
|
53
|
+
Object.keys(listenerCache).forEach((key) => {
|
|
54
|
+
delete listenerCache[key as AD_EVENT_TYPE];
|
|
55
|
+
});
|
|
56
|
+
},
|
|
49
57
|
};
|
|
50
58
|
};
|
|
@@ -12,22 +12,21 @@ type ListenerCache = {
|
|
|
12
12
|
[K in AD_EVENT_TYPE]: EventSubscription | undefined;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
let listenerCache: ListenerCache = {} as ListenerCache;
|
|
16
|
-
|
|
17
15
|
type rewardInfo = {
|
|
18
16
|
codeid: string;
|
|
19
17
|
};
|
|
20
18
|
|
|
21
19
|
export default function (info: rewardInfo) {
|
|
22
20
|
const eventEmitter = new NativeEventEmitter(RewardVideoModule);
|
|
21
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
22
|
+
const listenerCache: ListenerCache = {} as ListenerCache;
|
|
23
23
|
let result = RewardVideoModule.startAd(info);
|
|
24
24
|
return {
|
|
25
25
|
result,
|
|
26
26
|
subscribe: (type: AD_EVENT_TYPE, callback: (event: any) => void) => {
|
|
27
|
+
// Remove previous listener for this type in this instance only
|
|
27
28
|
if (listenerCache[type]) {
|
|
28
29
|
listenerCache[type]?.remove();
|
|
29
|
-
} else {
|
|
30
|
-
console.warn(`Listener for ${type} not found in the cache.`);
|
|
31
30
|
}
|
|
32
31
|
return (listenerCache[type] = eventEmitter.addListener(
|
|
33
32
|
'RewardVideo-' + type,
|
|
@@ -36,5 +35,14 @@ export default function (info: rewardInfo) {
|
|
|
36
35
|
}
|
|
37
36
|
));
|
|
38
37
|
},
|
|
38
|
+
// Provide cleanup method
|
|
39
|
+
cleanup: () => {
|
|
40
|
+
Object.values(listenerCache).forEach((subscription) => {
|
|
41
|
+
subscription?.remove();
|
|
42
|
+
});
|
|
43
|
+
Object.keys(listenerCache).forEach((key) => {
|
|
44
|
+
delete listenerCache[key as AD_EVENT_TYPE];
|
|
45
|
+
});
|
|
46
|
+
},
|
|
39
47
|
};
|
|
40
48
|
}
|
package/src/dy/api/SplashAd.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @description: 开屏广告
|
|
5
5
|
*/
|
|
6
6
|
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
7
|
+
import type { EventSubscription } from 'react-native';
|
|
7
8
|
const { SplashAd } = NativeModules;
|
|
8
9
|
|
|
9
10
|
export interface AD_EVENT_TYPE {
|
|
@@ -18,16 +19,17 @@ export interface SPLASHAD_PROPS_TYPE {
|
|
|
18
19
|
anim?: 'default' | 'none' | 'catalyst' | 'slide' | 'fade';
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
const listenerCache: any = {};
|
|
22
|
-
|
|
23
22
|
const dyLoadSplashAd = ({ codeid, anim = 'default' }: SPLASHAD_PROPS_TYPE) => {
|
|
24
23
|
const eventEmitter = new NativeEventEmitter(SplashAd);
|
|
24
|
+
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
25
|
+
const listenerCache: Record<string, EventSubscription | undefined> = {};
|
|
25
26
|
let result = SplashAd.loadSplashAd({ codeid, anim });
|
|
26
27
|
return {
|
|
27
28
|
result,
|
|
28
29
|
subscribe: (type: keyof AD_EVENT_TYPE, callback: (event: any) => void) => {
|
|
30
|
+
// Remove previous listener for this type in this instance only
|
|
29
31
|
if (listenerCache[type]) {
|
|
30
|
-
listenerCache[type]
|
|
32
|
+
listenerCache[type]?.remove();
|
|
31
33
|
}
|
|
32
34
|
return (listenerCache[type] = eventEmitter.addListener(
|
|
33
35
|
'SplashAd-' + type,
|
|
@@ -38,6 +40,15 @@ const dyLoadSplashAd = ({ codeid, anim = 'default' }: SPLASHAD_PROPS_TYPE) => {
|
|
|
38
40
|
}
|
|
39
41
|
));
|
|
40
42
|
},
|
|
43
|
+
// Provide cleanup method
|
|
44
|
+
cleanup: () => {
|
|
45
|
+
Object.values(listenerCache).forEach((subscription) => {
|
|
46
|
+
subscription?.remove();
|
|
47
|
+
});
|
|
48
|
+
Object.keys(listenerCache).forEach((key) => {
|
|
49
|
+
delete listenerCache[key];
|
|
50
|
+
});
|
|
51
|
+
},
|
|
41
52
|
};
|
|
42
53
|
};
|
|
43
54
|
export { dyLoadSplashAd };
|
|
@@ -29,6 +29,11 @@ const LINKING_ERROR =
|
|
|
29
29
|
'- You are not using Expo Go\n' +
|
|
30
30
|
'\nNote: BannerAd is currently only supported on Android platform.';
|
|
31
31
|
|
|
32
|
+
// Define native component at module level to avoid duplicate registration
|
|
33
|
+
const BannerAdNativeComponent = ComponentName && UIManager.getViewManagerConfig(ComponentName) != null
|
|
34
|
+
? requireNativeComponent<BannerAdProps>(ComponentName)
|
|
35
|
+
: undefined;
|
|
36
|
+
|
|
32
37
|
const BannerAdView = (props: BannerAdProps) => {
|
|
33
38
|
const {
|
|
34
39
|
codeid,
|
|
@@ -54,20 +59,12 @@ const BannerAdView = (props: BannerAdProps) => {
|
|
|
54
59
|
|
|
55
60
|
if (!visible || dismissed) return null;
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return null;
|
|
62
|
+
if (!BannerAdNativeComponent) {
|
|
63
|
+
throw new Error(LINKING_ERROR);
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
const BannerAdComponent =
|
|
63
|
-
UIManager.getViewManagerConfig(ComponentName) != null
|
|
64
|
-
? requireNativeComponent<BannerAdProps>(ComponentName)
|
|
65
|
-
: () => {
|
|
66
|
-
throw new Error(LINKING_ERROR);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
66
|
return (
|
|
70
|
-
<
|
|
67
|
+
<BannerAdNativeComponent
|
|
71
68
|
codeid={codeid}
|
|
72
69
|
adWidth={adWidth}
|
|
73
70
|
adHeight={height}
|
|
@@ -99,4 +96,5 @@ const BannerAdView = (props: BannerAdProps) => {
|
|
|
99
96
|
);
|
|
100
97
|
};
|
|
101
98
|
|
|
102
|
-
export default BannerAdView;
|
|
99
|
+
export default React.memo(BannerAdView);
|
|
100
|
+
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
const { DrawFeedAdModule } = NativeModules;
|
|
16
16
|
|
|
17
17
|
const LINKING_ERROR =
|
|
18
|
-
`The package 'react-native-
|
|
18
|
+
`The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` +
|
|
19
19
|
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
20
20
|
'- You rebuilt the app after installing the package\n' +
|
|
21
21
|
'- You are not using Expo Go\n';
|
|
@@ -38,6 +38,11 @@ export const loadDrawFeedAd = (info: { appid: string; codeid: string }) => {
|
|
|
38
38
|
DrawFeedAdModule.loadDrawFeedAd(info);
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
+
// Define native component at module level to avoid duplicate registration
|
|
42
|
+
const DrawFeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null
|
|
43
|
+
? requireNativeComponent<ViewProps>(ComponentName)
|
|
44
|
+
: undefined;
|
|
45
|
+
|
|
41
46
|
export const DrawFeedView = (props: DrawFeedAdProps) => {
|
|
42
47
|
const {
|
|
43
48
|
codeid,
|
|
@@ -50,15 +55,13 @@ export const DrawFeedView = (props: DrawFeedAdProps) => {
|
|
|
50
55
|
if (!visible) return null;
|
|
51
56
|
|
|
52
57
|
const styleObj = style ? style : styles.container;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
throw new Error(LINKING_ERROR);
|
|
58
|
-
};
|
|
58
|
+
|
|
59
|
+
if (!DrawFeedAdNativeComponent) {
|
|
60
|
+
throw new Error(LINKING_ERROR);
|
|
61
|
+
}
|
|
59
62
|
|
|
60
63
|
return (
|
|
61
|
-
<
|
|
64
|
+
<DrawFeedAdNativeComponent
|
|
62
65
|
codeid={codeid}
|
|
63
66
|
onAdError={(e: any) => {
|
|
64
67
|
console.log('onAdError DrawFeed', e.nativeEvent);
|
|
@@ -84,4 +87,4 @@ const styles = StyleSheet.create({
|
|
|
84
87
|
},
|
|
85
88
|
});
|
|
86
89
|
|
|
87
|
-
export default DrawFeedView;
|
|
90
|
+
export default React.memo(DrawFeedView);
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
import { Platform, requireNativeComponent, UIManager } from 'react-native';
|
|
8
8
|
import type { ViewStyle } from 'react-native';
|
|
9
|
+
|
|
9
10
|
const ComponentName = 'FeedAdViewManager';
|
|
10
11
|
|
|
11
12
|
export interface FeedAdProps {
|
|
@@ -20,11 +21,16 @@ export interface FeedAdProps {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const LINKING_ERROR =
|
|
23
|
-
`The package 'react-native-
|
|
24
|
+
`The package 'react-native-brayant-ad' doesn't seem to be linked. Make sure: \n\n` +
|
|
24
25
|
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
25
26
|
'- You rebuilt the app after installing the package\n' +
|
|
26
27
|
'- You are not using Expo Go\n';
|
|
27
28
|
|
|
29
|
+
// Define native component at module level to avoid duplicate registration
|
|
30
|
+
const FeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null
|
|
31
|
+
? requireNativeComponent<FeedAdProps>(ComponentName)
|
|
32
|
+
: undefined;
|
|
33
|
+
|
|
28
34
|
const FeedAdView = (props: FeedAdProps) => {
|
|
29
35
|
const {
|
|
30
36
|
codeid,
|
|
@@ -43,14 +49,12 @@ const FeedAdView = (props: FeedAdProps) => {
|
|
|
43
49
|
// FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
|
|
44
50
|
if (!visible || closed) return null;
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
throw new Error(LINKING_ERROR);
|
|
51
|
-
};
|
|
52
|
+
if (!FeedAdNativeComponent) {
|
|
53
|
+
throw new Error(LINKING_ERROR);
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
return (
|
|
53
|
-
<
|
|
57
|
+
<FeedAdNativeComponent
|
|
54
58
|
codeid={codeid}
|
|
55
59
|
// 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
|
|
56
60
|
adWidth={adWidth - 30}
|
|
@@ -75,4 +79,5 @@ const FeedAdView = (props: FeedAdProps) => {
|
|
|
75
79
|
/>
|
|
76
80
|
);
|
|
77
81
|
};
|
|
78
|
-
|
|
82
|
+
|
|
83
|
+
export default React.memo(FeedAdView);
|