@24jieqi/react-native-brayant-ad 0.1.23 → 0.1.25
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/android/src/main/java/com/brayantad/dy/DyADCore.java +9 -0
- package/android/src/main/java/com/brayantad/dy/banner/view/BannerAdView.java +3 -1
- package/android/src/main/java/com/brayantad/dy/drawFeed/view/DrawFeedView.java +5 -3
- package/android/src/main/java/com/brayantad/dy/feedAd/view/FeedAdView.java +4 -4
- package/android/src/main/java/com/brayantad/dy/splash/SplashAdModule.java +155 -0
- package/android/src/main/java/com/brayantad/dy/splash/activity/SplashActivity.java +20 -5
- package/lib/commonjs/dy/api/SplashAd.js +29 -1
- package/lib/commonjs/dy/api/SplashAd.js.map +1 -1
- package/lib/commonjs/index.js +18 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/dy/api/SplashAd.js +26 -1
- package/lib/module/dy/api/SplashAd.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/dy/api/SplashAd.d.ts +30 -1
- package/lib/typescript/src/dy/api/SplashAd.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dy/api/SplashAd.ts +49 -1
- package/src/index.tsx +9 -1
|
@@ -70,6 +70,15 @@ public class DyADCore {
|
|
|
70
70
|
public static CSJSplashAd splashAd;
|
|
71
71
|
public static ReactContext reactContext;
|
|
72
72
|
|
|
73
|
+
// 开屏广告预加载状态管理
|
|
74
|
+
public static final int SPLASH_PRELOAD_IDLE = 0; // 未预加载
|
|
75
|
+
public static final int SPLASH_PRELOAD_LOADING = 1; // 预加载中
|
|
76
|
+
public static final int SPLASH_PRELOAD_SUCCESS = 2; // 预加载成功
|
|
77
|
+
public static final int SPLASH_PRELOAD_FAIL = 3; // 预加载失败
|
|
78
|
+
public static int splashPreloadStatus = SPLASH_PRELOAD_IDLE;
|
|
79
|
+
public static long splashPreloadTime = 0; // 预加载成功时间戳
|
|
80
|
+
public static final long SPLASH_PRELOAD_VALID_DURATION = 5 * 60 * 1000; // 预加载有效期5分钟
|
|
81
|
+
|
|
73
82
|
public static void initSdk(Context context, String appId, Boolean debug) {
|
|
74
83
|
if (TTAdSdk != null && Objects.equals(tt_appid, appId)) {
|
|
75
84
|
//已初始化
|
|
@@ -38,6 +38,8 @@ public class BannerAdView extends RelativeLayout {
|
|
|
38
38
|
inflate(context, R.layout.feed_view, this);
|
|
39
39
|
Utils.setupLayoutHack(this);
|
|
40
40
|
|
|
41
|
+
setVisibility(View.INVISIBLE);
|
|
42
|
+
|
|
41
43
|
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
|
|
42
44
|
RelativeLayout.LayoutParams.MATCH_PARENT,
|
|
43
45
|
mExpectedHeight
|
|
@@ -73,7 +75,7 @@ public class BannerAdView extends RelativeLayout {
|
|
|
73
75
|
*/
|
|
74
76
|
public void setVisibility(boolean visible) {
|
|
75
77
|
if (visible) {
|
|
76
|
-
|
|
78
|
+
// 触发加载,但暂不显示(等待渲染成功)
|
|
77
79
|
showAd();
|
|
78
80
|
} else {
|
|
79
81
|
super.setVisibility(View.INVISIBLE);
|
|
@@ -50,11 +50,11 @@ public class DrawFeedView extends RelativeLayout {
|
|
|
50
50
|
reactContext = context;
|
|
51
51
|
mContext = context;
|
|
52
52
|
|
|
53
|
-
// 初始化广告渲染组件
|
|
54
53
|
inflate(mContext, R.layout.draw_video, this);
|
|
55
54
|
mContainer = findViewById(R.id.tt_video_layout_hxb);
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
setVisibility(View.INVISIBLE);
|
|
57
|
+
|
|
58
58
|
Utils.setupLayoutHack(this);
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -214,6 +214,7 @@ public class DrawFeedView extends RelativeLayout {
|
|
|
214
214
|
public void onRenderSuccess(View view, float width, float height) {
|
|
215
215
|
Log.d(TAG, "express onRenderSuccess");
|
|
216
216
|
mContainer.addView(ad.getExpressAdView());
|
|
217
|
+
DrawFeedView.this.setVisibility(View.VISIBLE);
|
|
217
218
|
onExpressAdLoad();
|
|
218
219
|
}
|
|
219
220
|
}
|
|
@@ -301,6 +302,8 @@ public class DrawFeedView extends RelativeLayout {
|
|
|
301
302
|
View view = ad.getAdView();
|
|
302
303
|
mContainer.addView(view);
|
|
303
304
|
|
|
305
|
+
DrawFeedView.this.setVisibility(View.VISIBLE);
|
|
306
|
+
|
|
304
307
|
// 广告替换用户头像
|
|
305
308
|
String headicon = "";
|
|
306
309
|
if (ad.getIcon() != null && ad.getIcon().getImageUrl() != null) {
|
|
@@ -308,7 +311,6 @@ public class DrawFeedView extends RelativeLayout {
|
|
|
308
311
|
}
|
|
309
312
|
onNativeAdLoad(headicon);
|
|
310
313
|
|
|
311
|
-
// 点击标题,下载按钮+事件
|
|
312
314
|
initAdViewAndAction(ad, mContainer);
|
|
313
315
|
}
|
|
314
316
|
}
|
|
@@ -50,6 +50,9 @@ public class FeedAdView extends RelativeLayout {
|
|
|
50
50
|
//开始展开
|
|
51
51
|
inflate(context, R.layout.feed_view, this);
|
|
52
52
|
|
|
53
|
+
// 初始隐藏容器,避免白屏闪现
|
|
54
|
+
setVisibility(View.INVISIBLE);
|
|
55
|
+
|
|
53
56
|
// 这个函数很关键,不然不能触发再次渲染,让 view 在 RN 里渲染成功!!
|
|
54
57
|
Utils.setupLayoutHack(this);
|
|
55
58
|
}
|
|
@@ -173,18 +176,15 @@ public class FeedAdView extends RelativeLayout {
|
|
|
173
176
|
|
|
174
177
|
@Override
|
|
175
178
|
public void onRenderSuccess(View view, float width, float height) {
|
|
176
|
-
// 返回view的宽高 单位 dp
|
|
177
|
-
// TToast.show(mContext, "渲染成功");
|
|
178
|
-
// 在渲染成功回调时展示广告,提升体验
|
|
179
179
|
RelativeLayout mExpressContainer = findViewById(R.id.feed_container);
|
|
180
180
|
if (mExpressContainer != null) {
|
|
181
181
|
mExpressContainer.addView(view);
|
|
182
182
|
}
|
|
183
|
+
FeedAdView.this.setVisibility(View.VISIBLE);
|
|
183
184
|
onAdLayout((int) width, (int) height);
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
187
|
);
|
|
187
|
-
// dislike设置
|
|
188
188
|
bindDislike(ad, true);
|
|
189
189
|
if (ad.getInteractionType() != TTAdConstant.INTERACTION_TYPE_DOWNLOAD) {
|
|
190
190
|
return;
|
|
@@ -2,21 +2,35 @@ package com.brayantad.dy.splash;
|
|
|
2
2
|
|
|
3
3
|
import android.app.Activity;
|
|
4
4
|
import android.content.Intent;
|
|
5
|
+
import android.util.Log;
|
|
5
6
|
|
|
6
7
|
import androidx.annotation.NonNull;
|
|
7
8
|
|
|
8
9
|
import com.brayantad.dy.DyADCore;
|
|
9
10
|
import com.brayantad.dy.splash.activity.SplashActivity;
|
|
11
|
+
import com.bytedance.sdk.openadsdk.AdSlot;
|
|
12
|
+
import com.bytedance.sdk.openadsdk.CSJAdError;
|
|
13
|
+
import com.bytedance.sdk.openadsdk.CSJSplashAd;
|
|
14
|
+
import com.bytedance.sdk.openadsdk.TTAdNative;
|
|
15
|
+
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
|
16
|
+
import com.facebook.react.bridge.Arguments;
|
|
17
|
+
import com.facebook.react.bridge.Promise;
|
|
10
18
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
19
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
12
20
|
import com.facebook.react.bridge.ReactMethod;
|
|
13
21
|
import com.facebook.react.bridge.ReadableMap;
|
|
22
|
+
import com.facebook.react.bridge.WritableMap;
|
|
23
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
24
|
+
|
|
25
|
+
import static com.bytedance.sdk.openadsdk.TTAdLoadType.PRELOAD;
|
|
14
26
|
|
|
15
27
|
// 开屏广告
|
|
16
28
|
public class SplashAdModule extends ReactContextBaseJavaModule {
|
|
17
29
|
|
|
18
30
|
String TAG = "SplashAd";
|
|
19
31
|
ReactApplicationContext mContext;
|
|
32
|
+
// 开屏广告预加载超时时间
|
|
33
|
+
private static final int PRELOAD_TIME_OUT = 3500;
|
|
20
34
|
|
|
21
35
|
public SplashAdModule(@NonNull ReactApplicationContext reactContext) {
|
|
22
36
|
super(reactContext);
|
|
@@ -29,6 +43,147 @@ public class SplashAdModule extends ReactContextBaseJavaModule {
|
|
|
29
43
|
return TAG;
|
|
30
44
|
}
|
|
31
45
|
|
|
46
|
+
/**
|
|
47
|
+
* 预加载开屏广告
|
|
48
|
+
* 在应用启动时调用,提前加载广告,避免展示时出现白屏
|
|
49
|
+
*/
|
|
50
|
+
@ReactMethod
|
|
51
|
+
public void preloadSplashAd(ReadableMap options, Promise promise) {
|
|
52
|
+
String codeid = options.hasKey("codeid") ? options.getString("codeid") : null;
|
|
53
|
+
|
|
54
|
+
if (codeid == null || codeid.isEmpty()) {
|
|
55
|
+
promise.reject("INVALID_CODEID", "广告位ID不能为空");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// 检查是否已有有效预加载
|
|
60
|
+
if (DyADCore.splashAd != null && isPreloadValid()) {
|
|
61
|
+
Log.d(TAG, "预加载广告已存在且有效,无需重新加载");
|
|
62
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_SUCCESS;
|
|
63
|
+
WritableMap result = Arguments.createMap();
|
|
64
|
+
result.putBoolean("success", true);
|
|
65
|
+
result.putString("message", "使用已预加载的广告");
|
|
66
|
+
promise.resolve(result);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// 检查SDK是否初始化
|
|
71
|
+
if (DyADCore.TTAdSdk == null || !TTAdSdk.isSdkReady()) {
|
|
72
|
+
promise.reject("SDK_NOT_READY", "广告SDK未初始化");
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// 设置预加载状态为加载中
|
|
77
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_LOADING;
|
|
78
|
+
|
|
79
|
+
TTAdNative mTTAdNative = DyADCore.TTAdSdk;
|
|
80
|
+
|
|
81
|
+
// 创建开屏广告请求参数
|
|
82
|
+
AdSlot adSlot = new AdSlot.Builder()
|
|
83
|
+
.setCodeId(codeid)
|
|
84
|
+
.setSupportDeepLink(true)
|
|
85
|
+
.setExpressViewAcceptedSize(1080, 1920)
|
|
86
|
+
.setAdLoadType(PRELOAD)
|
|
87
|
+
.build();
|
|
88
|
+
|
|
89
|
+
// 请求广告
|
|
90
|
+
mTTAdNative.loadSplashAd(
|
|
91
|
+
adSlot,
|
|
92
|
+
new TTAdNative.CSJSplashAdListener() {
|
|
93
|
+
@Override
|
|
94
|
+
public void onSplashLoadSuccess(CSJSplashAd csjSplashAd) {
|
|
95
|
+
// 素材加载成功
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@Override
|
|
99
|
+
public void onSplashLoadFail(CSJAdError csjAdError) {
|
|
100
|
+
Log.d(TAG, "预加载开屏广告失败:" + csjAdError);
|
|
101
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_FAIL;
|
|
102
|
+
DyADCore.splashAd = null;
|
|
103
|
+
|
|
104
|
+
// 发送预加载失败事件
|
|
105
|
+
WritableMap eventParams = Arguments.createMap();
|
|
106
|
+
eventParams.putString("error", csjAdError != null ? csjAdError.getMsg() : "未知错误");
|
|
107
|
+
sendEvent("SplashAd-onPreloadFail", eventParams);
|
|
108
|
+
|
|
109
|
+
promise.reject("PRELOAD_FAIL", csjAdError != null ? csjAdError.getMsg() : "预加载失败");
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@Override
|
|
113
|
+
public void onSplashRenderSuccess(CSJSplashAd csjSplashAd) {
|
|
114
|
+
Log.d(TAG, "预加载开屏广告成功");
|
|
115
|
+
DyADCore.splashAd = csjSplashAd;
|
|
116
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_SUCCESS;
|
|
117
|
+
DyADCore.splashPreloadTime = System.currentTimeMillis();
|
|
118
|
+
|
|
119
|
+
// 发送预加载成功事件
|
|
120
|
+
WritableMap eventParams = Arguments.createMap();
|
|
121
|
+
eventParams.putBoolean("success", true);
|
|
122
|
+
sendEvent("SplashAd-onPreloadSuccess", eventParams);
|
|
123
|
+
|
|
124
|
+
WritableMap result = Arguments.createMap();
|
|
125
|
+
result.putBoolean("success", true);
|
|
126
|
+
result.putString("message", "预加载成功");
|
|
127
|
+
promise.resolve(result);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@Override
|
|
131
|
+
public void onSplashRenderFail(CSJSplashAd csjSplashAd, CSJAdError csjAdError) {
|
|
132
|
+
Log.d(TAG, "预加载开屏广告渲染失败:" + csjAdError);
|
|
133
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_FAIL;
|
|
134
|
+
DyADCore.splashAd = null;
|
|
135
|
+
|
|
136
|
+
// 发送预加载失败事件
|
|
137
|
+
WritableMap eventParams = Arguments.createMap();
|
|
138
|
+
eventParams.putString("error", csjAdError != null ? csjAdError.getMsg() : "渲染失败");
|
|
139
|
+
sendEvent("SplashAd-onPreloadFail", eventParams);
|
|
140
|
+
|
|
141
|
+
promise.reject("RENDER_FAIL", csjAdError != null ? csjAdError.getMsg() : "渲染失败");
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
PRELOAD_TIME_OUT
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* 检查预加载的广告是否仍然有效(5分钟有效期)
|
|
150
|
+
*/
|
|
151
|
+
private boolean isPreloadValid() {
|
|
152
|
+
if (DyADCore.splashPreloadTime == 0) return false;
|
|
153
|
+
long elapsed = System.currentTimeMillis() - DyADCore.splashPreloadTime;
|
|
154
|
+
return elapsed < DyADCore.SPLASH_PRELOAD_VALID_DURATION;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* 检查是否有预加载的广告可用
|
|
159
|
+
*/
|
|
160
|
+
@ReactMethod
|
|
161
|
+
public void hasPreloadedAd(Promise promise) {
|
|
162
|
+
boolean hasAd = DyADCore.splashAd != null && isPreloadValid();
|
|
163
|
+
WritableMap result = Arguments.createMap();
|
|
164
|
+
result.putBoolean("hasAd", hasAd);
|
|
165
|
+
result.putInt("status", DyADCore.splashPreloadStatus);
|
|
166
|
+
promise.resolve(result);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* 清除预加载的广告缓存
|
|
171
|
+
*/
|
|
172
|
+
@ReactMethod
|
|
173
|
+
public void clearPreloadedAd() {
|
|
174
|
+
DyADCore.splashAd = null;
|
|
175
|
+
DyADCore.splashPreloadStatus = DyADCore.SPLASH_PRELOAD_IDLE;
|
|
176
|
+
DyADCore.splashPreloadTime = 0;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
private void sendEvent(String eventName, WritableMap params) {
|
|
180
|
+
if (mContext != null && mContext.hasActiveCatalystInstance()) {
|
|
181
|
+
mContext
|
|
182
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
183
|
+
.emit(eventName, params);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
32
187
|
@ReactMethod
|
|
33
188
|
public void loadSplashAd(ReadableMap options) {
|
|
34
189
|
String codeid = options.hasKey("codeid") ? options.getString("codeid") : null;
|
|
@@ -73,19 +73,25 @@ public class SplashActivity extends AppCompatActivity implements WeakHandler.IHa
|
|
|
73
73
|
// 在开屏时候申请不太合适,因为该页面倒计时结束或者请求超时会跳转,在该页面申请权限,体验不好
|
|
74
74
|
// TTAdManagerHolder.getInstance(this).requestPermissionIfNecessary(this);
|
|
75
75
|
|
|
76
|
-
// 定时,AD_TIME_OUT时间到时执行,如果开屏广告没有加载则跳转到主页面
|
|
77
|
-
mHandler.sendEmptyMessageDelayed(MSG_GO_MAIN, AD_TIME_OUT);
|
|
78
|
-
|
|
79
76
|
// 初始化自定义广告 View
|
|
80
77
|
initView();
|
|
81
78
|
|
|
82
79
|
// 绑定广告控制 Activity
|
|
83
80
|
DyADCore.hookActivity(this);
|
|
81
|
+
|
|
84
82
|
boolean sdkReady = TTAdSdk.isSdkReady();
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
boolean hasPreloadedAd = DyADCore.splashAd != null && sdkReady && isPreloadValid();
|
|
84
|
+
|
|
85
|
+
if (hasPreloadedAd) {
|
|
86
|
+
// 直接展示预加载的开屏广告,无需等待加载
|
|
87
|
+
Log.d(TAG, "使用预加载的开屏广告,直接展示");
|
|
87
88
|
showSplashAd();
|
|
88
89
|
} else {
|
|
90
|
+
// 没有预加载或已过期,需要实时加载
|
|
91
|
+
Log.d(TAG, "没有预加载广告,开始实时加载");
|
|
92
|
+
|
|
93
|
+
// 定时,AD_TIME_OUT时间到时执行,如果开屏广告没有加载则跳转到主页面
|
|
94
|
+
mHandler.sendEmptyMessageDelayed(MSG_GO_MAIN, AD_TIME_OUT);
|
|
89
95
|
|
|
90
96
|
// 加载并显示开屏广告
|
|
91
97
|
loadSplashAd(
|
|
@@ -99,6 +105,15 @@ public class SplashActivity extends AppCompatActivity implements WeakHandler.IHa
|
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
|
|
108
|
+
/**
|
|
109
|
+
* 检查预加载的广告是否仍然有效(5分钟有效期)
|
|
110
|
+
*/
|
|
111
|
+
private boolean isPreloadValid() {
|
|
112
|
+
if (DyADCore.splashPreloadTime == 0) return false;
|
|
113
|
+
long elapsed = System.currentTimeMillis() - DyADCore.splashPreloadTime;
|
|
114
|
+
return elapsed < DyADCore.SPLASH_PRELOAD_VALID_DURATION;
|
|
115
|
+
}
|
|
116
|
+
|
|
102
117
|
// 初始化开屏广告 View
|
|
103
118
|
private void initView() {
|
|
104
119
|
// 初始化广告渲染组件
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.dyLoadSplashAd = void 0;
|
|
6
|
+
exports.preloadSplashAd = exports.hasPreloadedSplashAd = exports.dyLoadSplashAd = exports.clearPreloadedSplashAd = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
/**
|
|
9
9
|
* @Author: 马海
|
|
@@ -50,5 +50,33 @@ const dyLoadSplashAd = ({
|
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* 预加载开屏广告
|
|
56
|
+
* 在应用启动时调用,提前加载广告,避免展示时出现白屏
|
|
57
|
+
* @param options 预加载选项
|
|
58
|
+
* @returns Promise<预加载结果>
|
|
59
|
+
*/
|
|
53
60
|
exports.dyLoadSplashAd = dyLoadSplashAd;
|
|
61
|
+
const preloadSplashAd = async options => {
|
|
62
|
+
return SplashAd.preloadSplashAd(options);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 检查是否有预加载的广告可用
|
|
67
|
+
* @returns Promise<检查结果>
|
|
68
|
+
*/
|
|
69
|
+
exports.preloadSplashAd = preloadSplashAd;
|
|
70
|
+
const hasPreloadedSplashAd = async () => {
|
|
71
|
+
return SplashAd.hasPreloadedAd();
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 清除预加载的广告缓存
|
|
76
|
+
*/
|
|
77
|
+
exports.hasPreloadedSplashAd = hasPreloadedSplashAd;
|
|
78
|
+
const clearPreloadedSplashAd = () => {
|
|
79
|
+
SplashAd.clearPreloadedAd();
|
|
80
|
+
};
|
|
81
|
+
exports.clearPreloadedSplashAd = clearPreloadedSplashAd;
|
|
54
82
|
//# sourceMappingURL=SplashAd.js.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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","preloadSplashAd","options","hasPreloadedSplashAd","hasPreloadedAd","clearPreloadedSplashAd","clearPreloadedAd"],"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;AA+BlC,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;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAAxB,cAAA,GAAAA,cAAA;AAMA,MAAMyB,eAAe,GAAG,MAAOC,OAA6B,IAAmC;EAC7F,OAAO5B,QAAQ,CAAC2B,eAAe,CAACC,OAAO,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AAHAF,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAIA,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAAgD;EAC3E,OAAO7B,QAAQ,CAAC8B,cAAc,CAAC,CAAC;AAClC,CAAC;;AAED;AACA;AACA;AAFAJ,OAAA,CAAAG,oBAAA,GAAAA,oBAAA;AAGA,MAAME,sBAAsB,GAAGA,CAAA,KAAY;EACzC/B,QAAQ,CAACgC,gBAAgB,CAAC,CAAC;AAC7B,CAAC;AAACN,OAAA,CAAAK,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -21,12 +21,24 @@ Object.defineProperty(exports, "FeedAdView", {
|
|
|
21
21
|
return _FeedAd.default;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "clearPreloadedSplashAd", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _SplashAd.clearPreloadedSplashAd;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
24
30
|
Object.defineProperty(exports, "dyLoadSplashAd", {
|
|
25
31
|
enumerable: true,
|
|
26
32
|
get: function () {
|
|
27
33
|
return _SplashAd.dyLoadSplashAd;
|
|
28
34
|
}
|
|
29
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "hasPreloadedSplashAd", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _SplashAd.hasPreloadedSplashAd;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
30
42
|
Object.defineProperty(exports, "init", {
|
|
31
43
|
enumerable: true,
|
|
32
44
|
get: function () {
|
|
@@ -46,6 +58,12 @@ Object.defineProperty(exports, "loadFeedAd", {
|
|
|
46
58
|
}
|
|
47
59
|
});
|
|
48
60
|
exports.multiply = multiply;
|
|
61
|
+
Object.defineProperty(exports, "preloadSplashAd", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () {
|
|
64
|
+
return _SplashAd.preloadSplashAd;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
49
67
|
Object.defineProperty(exports, "requestPermission", {
|
|
50
68
|
enumerable: true,
|
|
51
69
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_AdManager","_RewardVideo","_interopRequireDefault","_SplashAd","_DrawFeedAd","_FeedAd","_BannerAd","_FullScreenVideo","e","__esModule","default","LINKING_ERROR","Platform","select","ios","BrayantAd","NativeModules","Proxy","get","Error","multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_AdManager","_RewardVideo","_interopRequireDefault","_SplashAd","_DrawFeedAd","_FeedAd","_BannerAd","_FullScreenVideo","e","__esModule","default","LINKING_ERROR","Platform","select","ios","BrayantAd","NativeModules","Proxy","get","Error","multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAMA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,SAAA,GAAAJ,sBAAA,CAAAH,OAAA;AAEA,IAAAQ,gBAAA,GAAAL,sBAAA,CAAAH,OAAA;AAA4D,SAAAG,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAC5D,MAAMG,aAAa,GACjB,kFAAkF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEJ,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMK,SAAS,GAAGC,0BAAa,CAACD,SAAS,GACrCC,0BAAa,CAACD,SAAS,GACvB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEE,SAASS,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAOP,SAAS,CAACK,QAAQ,CAACC,CAAC,EAAEC,CAAC,CAAC;AACjC","ignoreList":[]}
|
|
@@ -43,5 +43,30 @@ const dyLoadSplashAd = ({
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 预加载开屏广告
|
|
49
|
+
* 在应用启动时调用,提前加载广告,避免展示时出现白屏
|
|
50
|
+
* @param options 预加载选项
|
|
51
|
+
* @returns Promise<预加载结果>
|
|
52
|
+
*/
|
|
53
|
+
const preloadSplashAd = async options => {
|
|
54
|
+
return SplashAd.preloadSplashAd(options);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 检查是否有预加载的广告可用
|
|
59
|
+
* @returns Promise<检查结果>
|
|
60
|
+
*/
|
|
61
|
+
const hasPreloadedSplashAd = async () => {
|
|
62
|
+
return SplashAd.hasPreloadedAd();
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* 清除预加载的广告缓存
|
|
67
|
+
*/
|
|
68
|
+
const clearPreloadedSplashAd = () => {
|
|
69
|
+
SplashAd.clearPreloadedAd();
|
|
70
|
+
};
|
|
71
|
+
export { dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd };
|
|
47
72
|
//# sourceMappingURL=SplashAd.js.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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","preloadSplashAd","options","hasPreloadedSplashAd","hasPreloadedAd","clearPreloadedSplashAd","clearPreloadedAd"],"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;AA+BlC,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;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG,MAAOC,OAA6B,IAAmC;EAC7F,OAAOzB,QAAQ,CAACwB,eAAe,CAACC,OAAO,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAAgD;EAC3E,OAAO1B,QAAQ,CAAC2B,cAAc,CAAC,CAAC;AAClC,CAAC;;AAED;AACA;AACA;AACA,MAAMC,sBAAsB,GAAGA,CAAA,KAAY;EACzC5B,QAAQ,CAAC6B,gBAAgB,CAAC,CAAC;AAC7B,CAAC;AAED,SACE5B,cAAc,EACduB,eAAe,EACfE,oBAAoB,EACpBE,sBAAsB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
2
|
import { init, loadFeedAd, requestPermission } from './dy/api/AdManager';
|
|
3
3
|
import startRewardVideo from './dy/api/RewardVideo';
|
|
4
|
-
import { dyLoadSplashAd } from './dy/api/SplashAd';
|
|
4
|
+
import { dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd } from './dy/api/SplashAd';
|
|
5
5
|
import { DrawFeedView, loadDrawFeedAd } from './dy/component/DrawFeedAd';
|
|
6
6
|
import FeedAdView from './dy/component/FeedAd';
|
|
7
7
|
import BannerAdView from './dy/component/BannerAd';
|
|
@@ -18,5 +18,5 @@ const BrayantAd = NativeModules.BrayantAd ? NativeModules.BrayantAd : new Proxy(
|
|
|
18
18
|
export function multiply(a, b) {
|
|
19
19
|
return BrayantAd.multiply(a, b);
|
|
20
20
|
}
|
|
21
|
-
export { init, loadFeedAd, requestPermission, loadDrawFeedAd, startRewardVideo, startFullScreenVideo, dyLoadSplashAd, DrawFeedView, FeedAdView, BannerAdView };
|
|
21
|
+
export { init, loadFeedAd, requestPermission, loadDrawFeedAd, startRewardVideo, startFullScreenVideo, dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd, DrawFeedView, FeedAdView, BannerAdView };
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","init","loadFeedAd","requestPermission","startRewardVideo","dyLoadSplashAd","DrawFeedView","loadDrawFeedAd","FeedAdView","BannerAdView","startFullScreenVideo","LINKING_ERROR","select","ios","default","BrayantAd","Proxy","get","Error","multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,IAAI,EAAEC,UAAU,EAAEC,iBAAiB,QAAQ,oBAAoB;AACxE,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","init","loadFeedAd","requestPermission","startRewardVideo","dyLoadSplashAd","preloadSplashAd","hasPreloadedSplashAd","clearPreloadedSplashAd","DrawFeedView","loadDrawFeedAd","FeedAdView","BannerAdView","startFullScreenVideo","LINKING_ERROR","select","ios","default","BrayantAd","Proxy","get","Error","multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,IAAI,EAAEC,UAAU,EAAEC,iBAAiB,QAAQ,oBAAoB;AACxE,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,SACEC,cAAc,EACdC,eAAe,EACfC,oBAAoB,EACpBC,sBAAsB,QACjB,mBAAmB;AAC1B,SAASC,YAAY,EAAEC,cAAc,QAAQ,2BAA2B;AACxE,OAAOC,UAAU,MAAM,uBAAuB;AAC9C,OAAOC,YAAY,MAAM,yBAAyB;AAElD,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,MAAMC,aAAa,GACjB,kFAAkF,GAClFd,QAAQ,CAACe,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGnB,aAAa,CAACmB,SAAS,GACrCnB,aAAa,CAACmB,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,SAASQ,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAmB;EAC9D,OAAON,SAAS,CAACI,QAAQ,CAACC,CAAC,EAAEC,CAAC,CAAC;AACjC;AACA,SACEvB,IAAI,EACJC,UAAU,EACVC,iBAAiB,EACjBO,cAAc,EACdN,gBAAgB,EAChBS,oBAAoB,EACpBR,cAAc,EACdC,eAAe,EACfC,oBAAoB,EACpBC,sBAAsB,EACtBC,YAAY,EACZE,UAAU,EACVC,YAAY","ignoreList":[]}
|
|
@@ -4,15 +4,44 @@ export interface AD_EVENT_TYPE {
|
|
|
4
4
|
onAdClose: string;
|
|
5
5
|
onAdSkip: string;
|
|
6
6
|
onAdShow: string;
|
|
7
|
+
onPreloadSuccess: string;
|
|
8
|
+
onPreloadFail: string;
|
|
7
9
|
}
|
|
8
10
|
export interface SPLASHAD_PROPS_TYPE {
|
|
9
11
|
codeid: string;
|
|
10
12
|
anim?: 'default' | 'none' | 'catalyst' | 'slide' | 'fade';
|
|
11
13
|
}
|
|
14
|
+
export interface PRELOAD_OPTIONS_TYPE {
|
|
15
|
+
codeid: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PRELOAD_RESULT_TYPE {
|
|
18
|
+
success: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
export interface HAS_PRELOADED_RESULT_TYPE {
|
|
22
|
+
hasAd: boolean;
|
|
23
|
+
status: number;
|
|
24
|
+
}
|
|
12
25
|
declare const dyLoadSplashAd: ({ codeid, anim }: SPLASHAD_PROPS_TYPE) => {
|
|
13
26
|
result: any;
|
|
14
27
|
subscribe: (type: keyof AD_EVENT_TYPE, callback: (event: any) => void) => import("react-native").EmitterSubscription;
|
|
15
28
|
cleanup: () => void;
|
|
16
29
|
};
|
|
17
|
-
|
|
30
|
+
/**
|
|
31
|
+
* 预加载开屏广告
|
|
32
|
+
* 在应用启动时调用,提前加载广告,避免展示时出现白屏
|
|
33
|
+
* @param options 预加载选项
|
|
34
|
+
* @returns Promise<预加载结果>
|
|
35
|
+
*/
|
|
36
|
+
declare const preloadSplashAd: (options: PRELOAD_OPTIONS_TYPE) => Promise<PRELOAD_RESULT_TYPE>;
|
|
37
|
+
/**
|
|
38
|
+
* 检查是否有预加载的广告可用
|
|
39
|
+
* @returns Promise<检查结果>
|
|
40
|
+
*/
|
|
41
|
+
declare const hasPreloadedSplashAd: () => Promise<HAS_PRELOADED_RESULT_TYPE>;
|
|
42
|
+
/**
|
|
43
|
+
* 清除预加载的广告缓存
|
|
44
|
+
*/
|
|
45
|
+
declare const clearPreloadedSplashAd: () => void;
|
|
46
|
+
export { dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd, };
|
|
18
47
|
//# sourceMappingURL=SplashAd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;CAC3D;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,cAAc,GAAI,kBAA8B,mBAAmB;;sBAOnD,MAAM,aAAa,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI;;CAwBxE,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,eAAe,GAAU,SAAS,oBAAoB,KAAG,OAAO,CAAC,mBAAmB,CAEzF,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,oBAAoB,QAAa,OAAO,CAAC,yBAAyB,CAEvE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,sBAAsB,QAAO,IAElC,CAAC;AAEF,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { init, loadFeedAd, requestPermission } from './dy/api/AdManager';
|
|
2
2
|
import startRewardVideo from './dy/api/RewardVideo';
|
|
3
|
-
import { dyLoadSplashAd } from './dy/api/SplashAd';
|
|
3
|
+
import { dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd } from './dy/api/SplashAd';
|
|
4
4
|
import { DrawFeedView, loadDrawFeedAd } from './dy/component/DrawFeedAd';
|
|
5
5
|
import FeedAdView from './dy/component/FeedAd';
|
|
6
6
|
import BannerAdView from './dy/component/BannerAd';
|
|
7
7
|
import startFullScreenVideo from './dy/api/FullScreenVideo';
|
|
8
8
|
export declare function multiply(a: number, b: number): Promise<number>;
|
|
9
|
-
export { init, loadFeedAd, requestPermission, loadDrawFeedAd, startRewardVideo, startFullScreenVideo, dyLoadSplashAd, DrawFeedView, FeedAdView, BannerAdView, };
|
|
9
|
+
export { init, loadFeedAd, requestPermission, loadDrawFeedAd, startRewardVideo, startFullScreenVideo, dyLoadSplashAd, preloadSplashAd, hasPreloadedSplashAd, clearPreloadedSplashAd, DrawFeedView, FeedAdView, BannerAdView, };
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAkB5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AACD,OAAO,EACL,IAAI,EACJ,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,YAAY,GACb,CAAC"}
|
package/package.json
CHANGED
package/src/dy/api/SplashAd.ts
CHANGED
|
@@ -13,12 +13,29 @@ export interface AD_EVENT_TYPE {
|
|
|
13
13
|
onAdClose: string; // 广告关闭
|
|
14
14
|
onAdSkip: string; // 用户点击跳过广告监听
|
|
15
15
|
onAdShow: string; // 开屏广告开始展示
|
|
16
|
+
onPreloadSuccess: string; // 预加载成功
|
|
17
|
+
onPreloadFail: string; // 预加载失败
|
|
16
18
|
}
|
|
19
|
+
|
|
17
20
|
export interface SPLASHAD_PROPS_TYPE {
|
|
18
21
|
codeid: string;
|
|
19
22
|
anim?: 'default' | 'none' | 'catalyst' | 'slide' | 'fade';
|
|
20
23
|
}
|
|
21
24
|
|
|
25
|
+
export interface PRELOAD_OPTIONS_TYPE {
|
|
26
|
+
codeid: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface PRELOAD_RESULT_TYPE {
|
|
30
|
+
success: boolean;
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface HAS_PRELOADED_RESULT_TYPE {
|
|
35
|
+
hasAd: boolean;
|
|
36
|
+
status: number;
|
|
37
|
+
}
|
|
38
|
+
|
|
22
39
|
const dyLoadSplashAd = ({ codeid, anim = 'default' }: SPLASHAD_PROPS_TYPE) => {
|
|
23
40
|
const eventEmitter = new NativeEventEmitter(SplashAd);
|
|
24
41
|
// Per-instance listener cache to avoid conflicts with multiple ads
|
|
@@ -51,4 +68,35 @@ const dyLoadSplashAd = ({ codeid, anim = 'default' }: SPLASHAD_PROPS_TYPE) => {
|
|
|
51
68
|
},
|
|
52
69
|
};
|
|
53
70
|
};
|
|
54
|
-
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 预加载开屏广告
|
|
74
|
+
* 在应用启动时调用,提前加载广告,避免展示时出现白屏
|
|
75
|
+
* @param options 预加载选项
|
|
76
|
+
* @returns Promise<预加载结果>
|
|
77
|
+
*/
|
|
78
|
+
const preloadSplashAd = async (options: PRELOAD_OPTIONS_TYPE): Promise<PRELOAD_RESULT_TYPE> => {
|
|
79
|
+
return SplashAd.preloadSplashAd(options);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 检查是否有预加载的广告可用
|
|
84
|
+
* @returns Promise<检查结果>
|
|
85
|
+
*/
|
|
86
|
+
const hasPreloadedSplashAd = async (): Promise<HAS_PRELOADED_RESULT_TYPE> => {
|
|
87
|
+
return SplashAd.hasPreloadedAd();
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 清除预加载的广告缓存
|
|
92
|
+
*/
|
|
93
|
+
const clearPreloadedSplashAd = (): void => {
|
|
94
|
+
SplashAd.clearPreloadedAd();
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
dyLoadSplashAd,
|
|
99
|
+
preloadSplashAd,
|
|
100
|
+
hasPreloadedSplashAd,
|
|
101
|
+
clearPreloadedSplashAd,
|
|
102
|
+
};
|
package/src/index.tsx
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
2
|
import { init, loadFeedAd, requestPermission } from './dy/api/AdManager';
|
|
3
3
|
import startRewardVideo from './dy/api/RewardVideo';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
dyLoadSplashAd,
|
|
6
|
+
preloadSplashAd,
|
|
7
|
+
hasPreloadedSplashAd,
|
|
8
|
+
clearPreloadedSplashAd,
|
|
9
|
+
} from './dy/api/SplashAd';
|
|
5
10
|
import { DrawFeedView, loadDrawFeedAd } from './dy/component/DrawFeedAd';
|
|
6
11
|
import FeedAdView from './dy/component/FeedAd';
|
|
7
12
|
import BannerAdView from './dy/component/BannerAd';
|
|
@@ -35,6 +40,9 @@ export {
|
|
|
35
40
|
startRewardVideo,
|
|
36
41
|
startFullScreenVideo,
|
|
37
42
|
dyLoadSplashAd,
|
|
43
|
+
preloadSplashAd,
|
|
44
|
+
hasPreloadedSplashAd,
|
|
45
|
+
clearPreloadedSplashAd,
|
|
38
46
|
DrawFeedView,
|
|
39
47
|
FeedAdView,
|
|
40
48
|
BannerAdView,
|