qb-pc-sdk 1.2.3 → 1.2.5
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/README.md +102 -11
- package/core.min.js +1 -0
- package/inline-loader-cdn.js +1 -0
- package/package.json +18 -8
- package/index.js +0 -279
- package/qb-pc-sdk.js +0 -201
- package/src/ad-sdk-wrapper.js +0 -897
- package/src/example-simple.html +0 -124
package/README.md
CHANGED
|
@@ -114,12 +114,39 @@ npm install qb-pc-sdk
|
|
|
114
114
|
|
|
115
115
|
### CDN 方式
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
#### ⭐ 内联版本(最推荐,容灾100%达成)
|
|
118
|
+
|
|
119
|
+
**优势:**
|
|
120
|
+
- ✅ **容灾100%达成**:即使主 CDN 域名挂了,内联代码依然会运行并自动切换到备用 CDN
|
|
121
|
+
- ✅ **CDN 只请求一次**:直接加载 `core.min.js`,无需额外的引导文件
|
|
122
|
+
- ✅ **无需维护外部文件**:逻辑直接内联在 HTML 中,不依赖外部 `qb-pc-sdk.js`
|
|
123
|
+
- ✅ **Windows 环境自动检测**:非 Windows 环境自动跳过,不发起请求
|
|
124
|
+
|
|
125
|
+
**使用方法:**
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<script>
|
|
129
|
+
(function(g){"use strict";var w=g&&g.window?g.window:(typeof window!=="undefined"?window:g),d=w.document;if(!d||w._qbPcSdkLoading||w.AdSDK)return;var ua=(w.navigator&&w.navigator.userAgent)||"",p=w.navigator.platform||"";if(/Android|iPhone|iPad|iPod|Mac|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ua)||!/Win|Windows/i.test(ua+p))return;w._qbPcSdkLoading=true;var pr="https://file.qubiankeji.com/qb-pc-sdk/core.min.js",fb="https://unpkg.com/qb-pc-sdk@latest/core.min.js";var c=function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{setTimeout(function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK初始化失败"),AdSDK:null,GDTAdSDK:null}}));}},100);}};var l=function(p,f){if(d.querySelector('script[src="'+p+'"]')||d.querySelector('script[src="'+f+'"]')){c();return;}var s=d.createElement("script");s.src=p;s.async=true;s.onload=c;s.onerror=function(){if(!d.querySelector('script[src="'+f+'"]')){var fs=d.createElement("script");fs.src=f;fs.async=true;fs.onload=c;fs.onerror=function(){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK加载失败"),AdSDK:null,GDTAdSDK:null}}));};d.head.appendChild(fs);}else{c();}};d.head.appendChild(s);};l(pr,fb);})(typeof window!=="undefined"?window:(typeof global!=="undefined"?global:this));
|
|
130
|
+
</script>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**说明:**
|
|
134
|
+
- 主 CDN:`https://file.qubiankeji.com/qb-pc-sdk/core.min.js`
|
|
135
|
+
- 备用 CDN:`https://unpkg.com/qb-pc-sdk@latest/core.min.js`
|
|
136
|
+
- 代码长度:约 1.6KB(压缩后)
|
|
137
|
+
- 当主 CDN 无法访问时,自动切换到备用 CDN
|
|
138
|
+
- **推荐用于所有生产环境**
|
|
139
|
+
|
|
140
|
+
#### 外部文件方式(兼容旧版本)
|
|
141
|
+
|
|
142
|
+
如果不想使用内联版本,也可以使用外部文件:
|
|
118
143
|
|
|
119
144
|
```html
|
|
120
145
|
<script src="https://file.qubiankeji.com/qb-pc-sdk/qb-pc-sdk.js"></script>
|
|
121
146
|
```
|
|
122
147
|
|
|
148
|
+
**注意:** 外部文件方式需要额外的 HTTP 请求,且容灾效果不如内联版本。
|
|
149
|
+
|
|
123
150
|
## 使用方法
|
|
124
151
|
|
|
125
152
|
### 方式一:NPM 接入(模块化项目)
|
|
@@ -201,8 +228,23 @@ new AdSDK({
|
|
|
201
228
|
<body>
|
|
202
229
|
<div id="ad-container"></div>
|
|
203
230
|
|
|
204
|
-
<!-- 只需引入一个文件,会自动加载底层 SDK 和封装 SDK -->
|
|
205
|
-
<script
|
|
231
|
+
<!-- 只需引入一个文件,会自动加载底层 SDK 和封装 SDK(容灾版本) -->
|
|
232
|
+
<script>
|
|
233
|
+
(function() {
|
|
234
|
+
var primaryUrl = 'https://file.qubiankeji.com/qb-pc-sdk/qb-pc-sdk.js';
|
|
235
|
+
var fallbackUrl = 'https://unpkg.com/qb-pc-sdk@latest/qb-pc-sdk.js';
|
|
236
|
+
var script = document.createElement('script');
|
|
237
|
+
script.src = primaryUrl;
|
|
238
|
+
script.async = true;
|
|
239
|
+
script.onerror = function() {
|
|
240
|
+
var fallbackScript = document.createElement('script');
|
|
241
|
+
fallbackScript.src = fallbackUrl;
|
|
242
|
+
fallbackScript.async = true;
|
|
243
|
+
document.head.appendChild(fallbackScript);
|
|
244
|
+
};
|
|
245
|
+
document.head.appendChild(script);
|
|
246
|
+
})();
|
|
247
|
+
</script>
|
|
206
248
|
|
|
207
249
|
<!-- 使用 SDK -->
|
|
208
250
|
<script>
|
|
@@ -283,7 +325,7 @@ new AdSDK({
|
|
|
283
325
|
|
|
284
326
|
#### 基本用法(一键复制粘贴)
|
|
285
327
|
|
|
286
|
-
**步骤 1:**
|
|
328
|
+
**步骤 1:** 复制以下代码(内联版本,容灾100%达成,推荐)
|
|
287
329
|
|
|
288
330
|
```html
|
|
289
331
|
<ins class="qb-adsbyqubian"
|
|
@@ -291,7 +333,9 @@ new AdSDK({
|
|
|
291
333
|
data-app-id="your-app-id"
|
|
292
334
|
data-placement-id="your-placement-id">
|
|
293
335
|
</ins>
|
|
294
|
-
<script
|
|
336
|
+
<script>
|
|
337
|
+
(function(g){"use strict";var w=g&&g.window?g.window:(typeof window!=="undefined"?window:g),d=w.document;if(!d||w._qbPcSdkLoading||w.AdSDK)return;var ua=(w.navigator&&w.navigator.userAgent)||"",p=w.navigator.platform||"";if(/Android|iPhone|iPad|iPod|Mac|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ua)||!/Win|Windows/i.test(ua+p))return;w._qbPcSdkLoading=true;var pr="https://file.qubiankeji.com/qb-pc-sdk/core.min.js",fb="https://unpkg.com/qb-pc-sdk@latest/core.min.js";var c=function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{setTimeout(function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK初始化失败"),AdSDK:null,GDTAdSDK:null}}));}},100);}};var l=function(p,f){if(d.querySelector('script[src="'+p+'"]')||d.querySelector('script[src="'+f+'"]')){c();return;}var s=d.createElement("script");s.src=p;s.async=true;s.onload=c;s.onerror=function(){if(!d.querySelector('script[src="'+f+'"]')){var fs=d.createElement("script");fs.src=f;fs.async=true;fs.onload=c;fs.onerror=function(){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK加载失败"),AdSDK:null,GDTAdSDK:null}}));};d.head.appendChild(fs);}else{c();}};d.head.appendChild(s);};l(pr,fb);})(typeof window!=="undefined"?window:(typeof global!=="undefined"?global:this));
|
|
338
|
+
</script>
|
|
295
339
|
<script>(window.qbAds = window.qbAds || []).push({});</script>
|
|
296
340
|
```
|
|
297
341
|
|
|
@@ -332,8 +376,10 @@ new AdSDK({
|
|
|
332
376
|
data-placement-id="your-placement-id-3">
|
|
333
377
|
</ins>
|
|
334
378
|
|
|
335
|
-
<!--
|
|
336
|
-
<script
|
|
379
|
+
<!-- 脚本只需引入一次,放在页面底部即可(内联版本,容灾100%达成) -->
|
|
380
|
+
<script>
|
|
381
|
+
(function(g){"use strict";var w=g&&g.window?g.window:(typeof window!=="undefined"?window:g),d=w.document;if(!d||w._qbPcSdkLoading||w.AdSDK)return;var ua=(w.navigator&&w.navigator.userAgent)||"",p=w.navigator.platform||"";if(/Android|iPhone|iPad|iPod|Mac|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ua)||!/Win|Windows/i.test(ua+p))return;w._qbPcSdkLoading=true;var pr="https://file.qubiankeji.com/qb-pc-sdk/core.min.js",fb="https://unpkg.com/qb-pc-sdk@latest/core.min.js";var c=function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{setTimeout(function(){if(w.GDTAdSDK&&w.AdSDK){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{AdSDK:w.AdSDK,GDTAdSDK:w.GDTAdSDK}}));}else{w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK初始化失败"),AdSDK:null,GDTAdSDK:null}}));}},100);}};var l=function(p,f){if(d.querySelector('script[src="'+p+'"]')||d.querySelector('script[src="'+f+'"]')){c();return;}var s=d.createElement("script");s.src=p;s.async=true;s.onload=c;s.onerror=function(){if(!d.querySelector('script[src="'+f+'"]')){var fs=d.createElement("script");fs.src=f;fs.async=true;fs.onload=c;fs.onerror=function(){w._qbPcSdkLoading=false;w.dispatchEvent(new CustomEvent("qb-pc-sdk-ready",{detail:{error:new Error("SDK加载失败"),AdSDK:null,GDTAdSDK:null}}));};d.head.appendChild(fs);}else{c();}};d.head.appendChild(s);};l(pr,fb);})(typeof window!=="undefined"?window:(typeof global!=="undefined"?global:this));
|
|
382
|
+
</script>
|
|
337
383
|
<script>(window.qbAds = window.qbAds || []).push({});</script>
|
|
338
384
|
```
|
|
339
385
|
|
|
@@ -411,7 +457,22 @@ new AdSDK({
|
|
|
411
457
|
data-app-id="your-app-id"
|
|
412
458
|
data-placement-id="your-placement-id">
|
|
413
459
|
</ins>
|
|
414
|
-
<script
|
|
460
|
+
<script>
|
|
461
|
+
(function() {
|
|
462
|
+
var primaryUrl = 'https://file.qubiankeji.com/qb-pc-sdk/qb-pc-sdk.js';
|
|
463
|
+
var fallbackUrl = 'https://unpkg.com/qb-pc-sdk@latest/qb-pc-sdk.js';
|
|
464
|
+
var script = document.createElement('script');
|
|
465
|
+
script.src = primaryUrl;
|
|
466
|
+
script.async = true;
|
|
467
|
+
script.onerror = function() {
|
|
468
|
+
var fallbackScript = document.createElement('script');
|
|
469
|
+
fallbackScript.src = fallbackUrl;
|
|
470
|
+
fallbackScript.async = true;
|
|
471
|
+
document.head.appendChild(fallbackScript);
|
|
472
|
+
};
|
|
473
|
+
document.head.appendChild(script);
|
|
474
|
+
})();
|
|
475
|
+
</script>
|
|
415
476
|
<script>(window.qbAds = window.qbAds || []).push({});</script>
|
|
416
477
|
```
|
|
417
478
|
|
|
@@ -442,10 +503,25 @@ new AdSDK({
|
|
|
442
503
|
</ins>
|
|
443
504
|
```
|
|
444
505
|
|
|
445
|
-
2. **在 footer.htm
|
|
506
|
+
2. **在 footer.htm 中添加脚本**(只需添加一次,容灾版本):
|
|
446
507
|
|
|
447
508
|
```html
|
|
448
|
-
<script
|
|
509
|
+
<script>
|
|
510
|
+
(function() {
|
|
511
|
+
var primaryUrl = 'https://file.qubiankeji.com/qb-pc-sdk/qb-pc-sdk.js';
|
|
512
|
+
var fallbackUrl = 'https://unpkg.com/qb-pc-sdk@latest/qb-pc-sdk.js';
|
|
513
|
+
var script = document.createElement('script');
|
|
514
|
+
script.src = primaryUrl;
|
|
515
|
+
script.async = true;
|
|
516
|
+
script.onerror = function() {
|
|
517
|
+
var fallbackScript = document.createElement('script');
|
|
518
|
+
fallbackScript.src = fallbackUrl;
|
|
519
|
+
fallbackScript.async = true;
|
|
520
|
+
document.head.appendChild(fallbackScript);
|
|
521
|
+
};
|
|
522
|
+
document.head.appendChild(script);
|
|
523
|
+
})();
|
|
524
|
+
</script>
|
|
449
525
|
<script>(window.qbAds = window.qbAds || []).push({});</script>
|
|
450
526
|
```
|
|
451
527
|
|
|
@@ -500,7 +576,22 @@ new AdSDK({
|
|
|
500
576
|
data-app-id="your-app-id"
|
|
501
577
|
data-placement-id="your-placement-id">
|
|
502
578
|
</ins>
|
|
503
|
-
<script
|
|
579
|
+
<script>
|
|
580
|
+
(function() {
|
|
581
|
+
var primaryUrl = 'https://file.qubiankeji.com/qb-pc-sdk/qb-pc-sdk.js';
|
|
582
|
+
var fallbackUrl = 'https://unpkg.com/qb-pc-sdk@latest/qb-pc-sdk.js';
|
|
583
|
+
var script = document.createElement('script');
|
|
584
|
+
script.src = primaryUrl;
|
|
585
|
+
script.async = true;
|
|
586
|
+
script.onerror = function() {
|
|
587
|
+
var fallbackScript = document.createElement('script');
|
|
588
|
+
fallbackScript.src = fallbackUrl;
|
|
589
|
+
fallbackScript.async = true;
|
|
590
|
+
document.head.appendChild(fallbackScript);
|
|
591
|
+
};
|
|
592
|
+
document.head.appendChild(script);
|
|
593
|
+
})();
|
|
594
|
+
</script>
|
|
504
595
|
<script>(window.qbAds = window.qbAds || []).push({});</script>
|
|
505
596
|
```
|
|
506
597
|
|