@kbapp/js-bridge 0.1.0-alpha.0 → 0.2.1-alpha.0

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 CHANGED
@@ -56,9 +56,9 @@ saveImageToLocal({
56
56
 
57
57
  #### 请求参数
58
58
 
59
- | 参数 | 值类型 | 说明 |
60
- | -------- | ------ | ------------ |
61
- | videoUrl | string | 视频网络地址 |
59
+ | 参数 | 值类型 | 必填? | 说明 |
60
+ | -------- | ------ | ----- | ------------ |
61
+ | videoUrl | string | 必填 | 视频网络地址 |
62
62
 
63
63
  #### 返回值
64
64
 
@@ -72,12 +72,28 @@ saveImageToLocal({
72
72
 
73
73
  #### 请求参数
74
74
 
75
- | 参数 | 值类型 | 说明 |
76
- | -------- | ------ | ------------------ |
77
- | title | string | 分享的标题 |
78
- | content | string | 分享的内容(副标题) |
79
- | url | string | 分享的网页链接 |
80
- | imageUrl | string | 分享的图片 |
75
+ | 参数 | 值类型 | 必填? | 说明 |
76
+ | -------- | ------ | ----- | ------------------ |
77
+ | title | string | 必填 | 分享的标题 |
78
+ | content | string | 必填 | 分享的内容(副标题) |
79
+ | url | string | 必填 | 分享的网页链接 |
80
+ | imageUrl | string | 必填 | 分享的图片 |
81
+
82
+ #### 返回值
83
+
84
+
85
+
86
+ ---
87
+
88
+ ### sharePoster
89
+
90
+ > 分享图片
91
+
92
+ #### 请求参数
93
+
94
+ | 参数 | 值类型 | 必填? | 说明 |
95
+ | -------- | ------ | ----- | ------------------------------------- |
96
+ | imageUrl | string | 必填 | 分享的图片链接,仅支持网络地址,png/jpg |
81
97
 
82
98
  #### 返回值
83
99
 
@@ -1,44 +1,45 @@
1
- define(["require", "exports", "./lib/js-bridge", "./lib/ds-bridge", "./lib/flutter-ds-bridge"], function (require, exports, js_bridge_1, ds_bridge_1, flutter_ds_bridge_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.callHandler = exports.registerHandler = exports.$bridge = void 0;
5
- /** 桥接 */
6
- exports.$bridge = (function (user_agent) {
7
- if (/(kb_dsbridge_android)/i.test(user_agent)) {
8
- return (0, ds_bridge_1.default)();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callHandler = exports.registerHandler = exports.$bridge = void 0;
4
+ var js_bridge_1 = require("./lib/js-bridge");
5
+ var ds_bridge_1 = require("./lib/ds-bridge");
6
+ var flutter_ds_bridge_1 = require("./lib/flutter-ds-bridge");
7
+ /** 桥接 */
8
+ exports.$bridge = (function (user_agent) {
9
+ if (/(kb_dsbridge_android)/i.test(user_agent)) {
10
+ return (0, ds_bridge_1.default)();
11
+ }
12
+ if (/(kb_dsbridge_flutter)/i.test(user_agent)) {
13
+ return (0, flutter_ds_bridge_1.default)();
14
+ }
15
+ return (0, js_bridge_1.default)();
16
+ })(window.navigator.userAgent);
17
+ /**
18
+ *
19
+ * @description 注册事件 提供给native端调用
20
+ */
21
+ exports.registerHandler = exports.$bridge.registerHandler;
22
+ /**
23
+ *
24
+ * @description 主动触发 触发native端任务
25
+ */
26
+ var callHandler = function (data) {
27
+ exports.$bridge.callHandler(data.name, data.params, function (res) {
28
+ var _a, _b, _c;
29
+ var result;
30
+ try {
31
+ result = typeof res === 'string' ? JSON.parse(res) : res;
9
32
  }
10
- if (/(kb_dsbridge_flutter)/i.test(user_agent)) {
11
- return (0, flutter_ds_bridge_1.default)();
33
+ catch (error) {
34
+ result = {};
12
35
  }
13
- return (0, js_bridge_1.default)();
14
- })(window.navigator.userAgent);
15
- /**
16
- *
17
- * @description 注册事件 提供给native端调用
18
- */
19
- exports.registerHandler = exports.$bridge.registerHandler;
20
- /**
21
- *
22
- * @description 主动触发 触发native端任务
23
- */
24
- var callHandler = function (data) {
25
- exports.$bridge.callHandler(data.name, data.params, function (res) {
26
- var _a, _b, _c;
27
- var result;
28
- try {
29
- result = typeof res === 'string' ? JSON.parse(res) : res;
30
- }
31
- catch (error) {
32
- result = {};
33
- }
34
- if (result.data) {
35
- (_a = data.success) === null || _a === void 0 ? void 0 : _a.call(data, result);
36
- }
37
- else {
38
- (_b = data.fail) === null || _b === void 0 ? void 0 : _b.call(data, result);
39
- }
40
- (_c = data.complete) === null || _c === void 0 ? void 0 : _c.call(data);
41
- });
42
- };
43
- exports.callHandler = callHandler;
44
- });
36
+ if (result.data) {
37
+ (_a = data.success) === null || _a === void 0 ? void 0 : _a.call(data, result);
38
+ }
39
+ else {
40
+ (_b = data.fail) === null || _b === void 0 ? void 0 : _b.call(data, result);
41
+ }
42
+ (_c = data.complete) === null || _c === void 0 ? void 0 : _c.call(data);
43
+ });
44
+ };
45
+ exports.callHandler = callHandler;
@@ -1,128 +1,126 @@
1
- define(["require", "exports"], function (require, exports) {
2
- "use strict";
3
- var _this = this;
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- /*
6
- * @Author: wangalong
7
- * @LastEditTime: 2022-07-18 17:25:50
8
- */
9
- exports.default = (function () {
10
- var bridge = {
11
- default: _this,
12
- callHandler: function (method, args, cb) {
13
- var ret = '';
14
- if (typeof args == 'function') {
15
- cb = args;
16
- args = {};
17
- }
18
- var arg = { data: args === undefined ? null : args };
19
- if (typeof cb == 'function') {
20
- var cbName = 'dscb' + window.dscb++;
21
- window[cbName] = cb;
22
- arg['_dscbstub'] = cbName;
23
- }
24
- arg = JSON.stringify(arg);
25
- //if in webview that dsBridge provided, call!
26
- if (window._dsbridge) {
27
- ret = _dsbridge.call(method, arg);
28
- }
29
- else if (window._dswk ||
30
- navigator.userAgent.indexOf('_dsbridge') != -1) {
31
- ret = prompt('_dsbridge=' + method, arg);
32
- }
33
- // //TODO 待商榷 可优化
34
- // this.registerHandler("CommonResult", cb);
35
- // this.registerHandler("CommonRequest", cb);
36
- return JSON.parse(ret || '{}').data;
1
+ "use strict";
2
+ var _this = this;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * @Author: wangalong
6
+ * @LastEditTime: 2022-07-18 17:25:50
7
+ */
8
+ exports.default = (function () {
9
+ var bridge = {
10
+ default: _this,
11
+ callHandler: function (method, args, cb) {
12
+ var ret = '';
13
+ if (typeof args == 'function') {
14
+ cb = args;
15
+ args = {};
16
+ }
17
+ var arg = { data: args === undefined ? null : args };
18
+ if (typeof cb == 'function') {
19
+ var cbName = 'dscb' + window.dscb++;
20
+ window[cbName] = cb;
21
+ arg['_dscbstub'] = cbName;
22
+ }
23
+ arg = JSON.stringify(arg);
24
+ //if in webview that dsBridge provided, call!
25
+ if (window._dsbridge) {
26
+ ret = _dsbridge.call(method, arg);
27
+ }
28
+ else if (window._dswk ||
29
+ navigator.userAgent.indexOf('_dsbridge') != -1) {
30
+ ret = prompt('_dsbridge=' + method, arg);
31
+ }
32
+ // //TODO 待商榷 可优化
33
+ // this.registerHandler("CommonResult", cb);
34
+ // this.registerHandler("CommonRequest", cb);
35
+ return JSON.parse(ret || '{}').data;
36
+ },
37
+ register: function (name, fun, asyn) {
38
+ var q = asyn ? window._dsaf : window._dsf;
39
+ if (!window._dsInit) {
40
+ window._dsInit = true;
41
+ //notify native that js apis register successfully on next event loop
42
+ setTimeout(function () {
43
+ bridge.callHandler('_dsb.dsinit');
44
+ }, 0);
45
+ }
46
+ if (typeof fun == 'object') {
47
+ q._obs[name] = fun;
48
+ }
49
+ else {
50
+ q[name] = fun;
51
+ }
52
+ },
53
+ registerHandler: function (name, fun) {
54
+ this.register(name, fun, true);
55
+ },
56
+ };
57
+ !(function () {
58
+ if (window._dsf)
59
+ return;
60
+ var ob = {
61
+ //保存JS同步方法
62
+ _dsf: {
63
+ _obs: {},
37
64
  },
38
- register: function (name, fun, asyn) {
39
- var q = asyn ? window._dsaf : window._dsf;
40
- if (!window._dsInit) {
41
- window._dsInit = true;
42
- //notify native that js apis register successfully on next event loop
43
- setTimeout(function () {
44
- bridge.callHandler('_dsb.dsinit');
45
- }, 0);
65
+ //保存JS异步方法
66
+ _dsaf: {
67
+ _obs: {},
68
+ },
69
+ dscb: 0,
70
+ jsBridge: bridge,
71
+ _handleMessageFromNative: function (info) {
72
+ var arg = JSON.parse(info.data);
73
+ var ret = {
74
+ id: info.callbackId,
75
+ complete: true,
76
+ };
77
+ var f = this._dsf[info.method];
78
+ var af = this._dsaf[info.method];
79
+ var callSyn = function (f, ob) {
80
+ ret.data = f.apply(ob, arg);
81
+ bridge.callHandler('_dsb.returnValue', ret);
82
+ };
83
+ var callAsyn = function (f, ob) {
84
+ arg.push(function (data, complete) {
85
+ ret.data = data;
86
+ ret.complete = complete !== false;
87
+ bridge.callHandler('_dsb.returnValue', ret);
88
+ });
89
+ f.apply(ob, arg);
90
+ };
91
+ if (f) {
92
+ callSyn(f, this._dsf);
46
93
  }
47
- if (typeof fun == 'object') {
48
- q._obs[name] = fun;
94
+ else if (af) {
95
+ callAsyn(af, this._dsaf);
49
96
  }
50
97
  else {
51
- q[name] = fun;
98
+ //with namespace
99
+ var name = info.method.split('.');
100
+ if (name.length < 2)
101
+ return;
102
+ var method = name.pop();
103
+ var namespace = name.join('.');
104
+ var obs = this._dsf._obs;
105
+ var ob = obs[namespace] || {};
106
+ var m = ob[method];
107
+ if (m && typeof m == 'function') {
108
+ callSyn(m, ob);
109
+ return;
110
+ }
111
+ obs = this._dsaf._obs;
112
+ ob = obs[namespace] || {};
113
+ m = ob[method];
114
+ if (m && typeof m == 'function') {
115
+ callAsyn(m, ob);
116
+ return;
117
+ }
52
118
  }
53
119
  },
54
- registerHandler: function (name, fun) {
55
- this.register(name, fun, true);
56
- },
57
120
  };
58
- !(function () {
59
- if (window._dsf)
60
- return;
61
- var ob = {
62
- //保存JS同步方法
63
- _dsf: {
64
- _obs: {},
65
- },
66
- //保存JS异步方法
67
- _dsaf: {
68
- _obs: {},
69
- },
70
- dscb: 0,
71
- jsBridge: bridge,
72
- _handleMessageFromNative: function (info) {
73
- var arg = JSON.parse(info.data);
74
- var ret = {
75
- id: info.callbackId,
76
- complete: true,
77
- };
78
- var f = this._dsf[info.method];
79
- var af = this._dsaf[info.method];
80
- var callSyn = function (f, ob) {
81
- ret.data = f.apply(ob, arg);
82
- bridge.callHandler('_dsb.returnValue', ret);
83
- };
84
- var callAsyn = function (f, ob) {
85
- arg.push(function (data, complete) {
86
- ret.data = data;
87
- ret.complete = complete !== false;
88
- bridge.callHandler('_dsb.returnValue', ret);
89
- });
90
- f.apply(ob, arg);
91
- };
92
- if (f) {
93
- callSyn(f, this._dsf);
94
- }
95
- else if (af) {
96
- callAsyn(af, this._dsaf);
97
- }
98
- else {
99
- //with namespace
100
- var name = info.method.split('.');
101
- if (name.length < 2)
102
- return;
103
- var method = name.pop();
104
- var namespace = name.join('.');
105
- var obs = this._dsf._obs;
106
- var ob = obs[namespace] || {};
107
- var m = ob[method];
108
- if (m && typeof m == 'function') {
109
- callSyn(m, ob);
110
- return;
111
- }
112
- obs = this._dsaf._obs;
113
- ob = obs[namespace] || {};
114
- m = ob[method];
115
- if (m && typeof m == 'function') {
116
- callAsyn(m, ob);
117
- return;
118
- }
119
- }
120
- },
121
- };
122
- for (var attr in ob) {
123
- window[attr] = ob[attr];
124
- }
125
- })();
126
- return bridge;
127
- });
121
+ for (var attr in ob) {
122
+ window[attr] = ob[attr];
123
+ }
124
+ })();
125
+ return bridge;
128
126
  });
@@ -1,174 +1,172 @@
1
- define(["require", "exports"], function (require, exports) {
2
- "use strict";
3
- var _this = this;
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- /*
6
- * @Describe:
7
- * @Author: chenz
8
- */
9
- exports.default = (function () {
10
- var callHandler = function (method, args, cb) {
11
- var ret = '';
12
- if (typeof args == 'function') {
13
- cb = args;
14
- args = {};
1
+ "use strict";
2
+ var _this = this;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*
5
+ * @Describe:
6
+ * @Author: chenz
7
+ */
8
+ exports.default = (function () {
9
+ var callHandler = function (method, args, cb) {
10
+ var ret = '';
11
+ if (typeof args == 'function') {
12
+ cb = args;
13
+ args = {};
14
+ }
15
+ var arg = { data: args === undefined ? null : args };
16
+ if (typeof cb == 'function') {
17
+ var cbName = 'dscb' + window.dscb++;
18
+ window[cbName] = cb;
19
+ arg['_dscbstub'] = cbName;
20
+ }
21
+ arg = JSON.stringify(arg);
22
+ //if in webview that dsBridge provided, call!
23
+ if (window.flutter_inappwebview) {
24
+ // ret = _dsbridge.call(method, arg)
25
+ if (window.flutter_inappwebview.callHandler) {
26
+ ret = window.flutter_inappwebview.callHandler('' + method, arg);
15
27
  }
16
- var arg = { data: args === undefined ? null : args };
17
- if (typeof cb == 'function') {
18
- var cbName = 'dscb' + window.dscb++;
19
- window[cbName] = cb;
20
- arg['_dscbstub'] = cbName;
21
- }
22
- arg = JSON.stringify(arg);
23
- //if in webview that dsBridge provided, call!
24
- if (window.flutter_inappwebview) {
25
- // ret = _dsbridge.call(method, arg)
26
- if (window.flutter_inappwebview.callHandler) {
27
- ret = window.flutter_inappwebview.callHandler('' + method, arg);
28
- }
28
+ }
29
+ else if (window._dswk || navigator.userAgent.indexOf('_dsbridge') != -1) {
30
+ ret = prompt('_flutterDsbridge=' + method, arg);
31
+ }
32
+ // //TODO 待商榷 可优化
33
+ // this.registerHandler("CommonResult", cb);
34
+ // this.registerHandler("CommonRequest", cb);
35
+ /**
36
+ * @description flutter桥接存在部分ret为Promise的情况,导致JSON.parse异常,暂时不清楚callHandler的用意
37
+ */
38
+ if (ret instanceof Promise) {
39
+ return ret;
40
+ }
41
+ try {
42
+ return JSON.parse(ret || '{}').data;
43
+ }
44
+ catch (error) {
45
+ console.error('callHandle异常,JSON.parse错误');
46
+ }
47
+ };
48
+ /** 桥接准备完成 */
49
+ var flutterDSBridgeIsReady = function () {
50
+ if (window.navigator.userAgent.includes('Android')) {
51
+ return window.flutter_inappwebview && window.flutter_inappwebview._platformReady;
52
+ }
53
+ return true;
54
+ };
55
+ var insertInCache = (function () {
56
+ var cache = [];
57
+ var stophandle = setInterval(function () {
58
+ if (!flutterDSBridgeIsReady()) {
59
+ return;
29
60
  }
30
- else if (window._dswk || navigator.userAgent.indexOf('_dsbridge') != -1) {
31
- ret = prompt('_flutterDsbridge=' + method, arg);
61
+ clearInterval(stophandle);
62
+ cache.forEach(function (params) {
63
+ callHandler.apply(window, params);
64
+ });
65
+ cache.length = 0;
66
+ }, 500);
67
+ return function () {
68
+ var params = [];
69
+ for (var _i = 0; _i < arguments.length; _i++) {
70
+ params[_i] = arguments[_i];
32
71
  }
33
- // //TODO 待商榷 可优化
34
- // this.registerHandler("CommonResult", cb);
35
- // this.registerHandler("CommonRequest", cb);
36
- /**
37
- * @description flutter桥接存在部分ret为Promise的情况,导致JSON.parse异常,暂时不清楚callHandler的用意
38
- */
39
- if (ret instanceof Promise) {
40
- return ret;
72
+ cache.push(params);
73
+ };
74
+ })();
75
+ var bridge = {
76
+ default: _this,
77
+ callHandler: function (method, args, cb) {
78
+ if (flutterDSBridgeIsReady()) {
79
+ return callHandler(method, args, cb);
41
80
  }
42
- try {
43
- return JSON.parse(ret || '{}').data;
81
+ return insertInCache(method, args, cb);
82
+ },
83
+ register: function (name, fun, asyn) {
84
+ var q = asyn ? window._dsaf : window._dsf;
85
+ if (!window._dsInit) {
86
+ window._dsInit = true;
87
+ //notify native that js apis register successfully on next event loop
88
+ setTimeout(function () {
89
+ bridge.callHandler('_dsb.dsinit');
90
+ }, 0);
44
91
  }
45
- catch (error) {
46
- console.error('callHandle异常,JSON.parse错误');
92
+ if (typeof fun == 'object') {
93
+ q._obs[name] = fun;
47
94
  }
48
- };
49
- /** 桥接准备完成 */
50
- var flutterDSBridgeIsReady = function () {
51
- if (window.navigator.userAgent.includes('Android')) {
52
- return window.flutter_inappwebview && window.flutter_inappwebview._platformReady;
95
+ else {
96
+ q[name] = fun;
53
97
  }
54
- return true;
55
- };
56
- var insertInCache = (function () {
57
- var cache = [];
58
- var stophandle = setInterval(function () {
59
- if (!flutterDSBridgeIsReady()) {
60
- return;
61
- }
62
- clearInterval(stophandle);
63
- cache.forEach(function (params) {
64
- callHandler.apply(window, params);
65
- });
66
- cache.length = 0;
67
- }, 500);
68
- return function () {
69
- var params = [];
70
- for (var _i = 0; _i < arguments.length; _i++) {
71
- params[_i] = arguments[_i];
72
- }
73
- cache.push(params);
74
- };
75
- })();
76
- var bridge = {
77
- default: _this,
78
- callHandler: function (method, args, cb) {
79
- if (flutterDSBridgeIsReady()) {
80
- return callHandler(method, args, cb);
81
- }
82
- return insertInCache(method, args, cb);
98
+ },
99
+ registerHandler: function (name, fun) {
100
+ this.register(name, fun, true);
101
+ },
102
+ };
103
+ !(function () {
104
+ if (window._dsf)
105
+ return;
106
+ var ob = {
107
+ //保存JS同步方法
108
+ _dsf: {
109
+ _obs: {},
110
+ },
111
+ //保存JS异步方法
112
+ _dsaf: {
113
+ _obs: {},
83
114
  },
84
- register: function (name, fun, asyn) {
85
- var q = asyn ? window._dsaf : window._dsf;
86
- if (!window._dsInit) {
87
- window._dsInit = true;
88
- //notify native that js apis register successfully on next event loop
89
- setTimeout(function () {
90
- bridge.callHandler('_dsb.dsinit');
91
- }, 0);
115
+ dscb: 0,
116
+ jsBridge: bridge,
117
+ _handleMessageFromNative: function (info) {
118
+ var arg = JSON.parse(info.data);
119
+ var ret = {
120
+ id: info.callbackId,
121
+ complete: true,
122
+ };
123
+ var f = this._dsf[info.method];
124
+ var af = this._dsaf[info.method];
125
+ var callSyn = function (f, ob) {
126
+ ret.data = f.apply(ob, arg);
127
+ bridge.callHandler('_dsb.returnValue', ret);
128
+ };
129
+ var callAsyn = function (f, ob) {
130
+ arg.push(function (data, complete) {
131
+ ret.data = data;
132
+ ret.complete = complete !== false;
133
+ bridge.callHandler('_dsb.returnValue', ret);
134
+ });
135
+ f.apply(ob, arg);
136
+ };
137
+ if (f) {
138
+ callSyn(f, this._dsf);
92
139
  }
93
- if (typeof fun == 'object') {
94
- q._obs[name] = fun;
140
+ else if (af) {
141
+ callAsyn(af, this._dsaf);
95
142
  }
96
143
  else {
97
- q[name] = fun;
144
+ //with namespace
145
+ var name = info.method.split('.');
146
+ if (name.length < 2)
147
+ return;
148
+ var method = name.pop();
149
+ var namespace = name.join('.');
150
+ var obs = this._dsf._obs;
151
+ var ob = obs[namespace] || {};
152
+ var m = ob[method];
153
+ if (m && typeof m == 'function') {
154
+ callSyn(m, ob);
155
+ return;
156
+ }
157
+ obs = this._dsaf._obs;
158
+ ob = obs[namespace] || {};
159
+ m = ob[method];
160
+ if (m && typeof m == 'function') {
161
+ callAsyn(m, ob);
162
+ return;
163
+ }
98
164
  }
99
165
  },
100
- registerHandler: function (name, fun) {
101
- this.register(name, fun, true);
102
- },
103
166
  };
104
- !(function () {
105
- if (window._dsf)
106
- return;
107
- var ob = {
108
- //保存JS同步方法
109
- _dsf: {
110
- _obs: {},
111
- },
112
- //保存JS异步方法
113
- _dsaf: {
114
- _obs: {},
115
- },
116
- dscb: 0,
117
- jsBridge: bridge,
118
- _handleMessageFromNative: function (info) {
119
- var arg = JSON.parse(info.data);
120
- var ret = {
121
- id: info.callbackId,
122
- complete: true,
123
- };
124
- var f = this._dsf[info.method];
125
- var af = this._dsaf[info.method];
126
- var callSyn = function (f, ob) {
127
- ret.data = f.apply(ob, arg);
128
- bridge.callHandler('_dsb.returnValue', ret);
129
- };
130
- var callAsyn = function (f, ob) {
131
- arg.push(function (data, complete) {
132
- ret.data = data;
133
- ret.complete = complete !== false;
134
- bridge.callHandler('_dsb.returnValue', ret);
135
- });
136
- f.apply(ob, arg);
137
- };
138
- if (f) {
139
- callSyn(f, this._dsf);
140
- }
141
- else if (af) {
142
- callAsyn(af, this._dsaf);
143
- }
144
- else {
145
- //with namespace
146
- var name = info.method.split('.');
147
- if (name.length < 2)
148
- return;
149
- var method = name.pop();
150
- var namespace = name.join('.');
151
- var obs = this._dsf._obs;
152
- var ob = obs[namespace] || {};
153
- var m = ob[method];
154
- if (m && typeof m == 'function') {
155
- callSyn(m, ob);
156
- return;
157
- }
158
- obs = this._dsaf._obs;
159
- ob = obs[namespace] || {};
160
- m = ob[method];
161
- if (m && typeof m == 'function') {
162
- callAsyn(m, ob);
163
- return;
164
- }
165
- }
166
- },
167
- };
168
- for (var attr in ob) {
169
- window[attr] = ob[attr];
170
- }
171
- })();
172
- return bridge;
173
- });
167
+ for (var attr in ob) {
168
+ window[attr] = ob[attr];
169
+ }
170
+ })();
171
+ return bridge;
174
172
  });
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
3
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
4
  if (ar || !(i in from)) {
@@ -7,184 +8,181 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
7
8
  }
8
9
  return to.concat(ar || Array.prototype.slice.call(from));
9
10
  };
10
- define(["require", "exports"], function (require, exports) {
11
- "use strict";
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.default = (function () {
14
- /**
15
- * vue-bridge-webview config
16
- *
17
- * @type {{bridgeWebViewDelay: number}}
18
- */
19
- var bridgeConfig = {
20
- bridgeWebViewDelay: 500,
21
- callHandle: {}, // bridge android / ios
22
- };
23
- var cache = [];
24
- var $bridge = {
25
- registerHandler: function () {
26
- cache.push({
27
- type: 'registerHandler',
28
- params: __spreadArray([], arguments, true),
29
- });
30
- },
31
- callHandler: function () {
32
- cache.push({
33
- type: 'callHandler',
34
- params: __spreadArray([], arguments, true),
35
- });
36
- },
37
- };
38
- /* ios 初始化 */
39
- function setupWebViewJavascriptBridge(callback) {
40
- if (window.WebViewJavascriptBridge) {
41
- return callback(window.WebViewJavascriptBridge);
42
- }
43
- if (window.WVJBCallbacks) {
44
- return window.WVJBCallbacks.push(callback);
45
- }
46
- window.WVJBCallbacks = [callback];
47
- var WVJBIframe = document.createElement('iframe');
48
- WVJBIframe.style.display = 'none';
49
- WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
50
- document.documentElement.appendChild(WVJBIframe);
51
- setTimeout(function () {
52
- document.documentElement.removeChild(WVJBIframe);
53
- }, 0);
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.default = (function () {
13
+ /**
14
+ * vue-bridge-webview config
15
+ *
16
+ * @type {{bridgeWebViewDelay: number}}
17
+ */
18
+ var bridgeConfig = {
19
+ bridgeWebViewDelay: 500,
20
+ callHandle: {}, // bridge android / ios
21
+ };
22
+ var cache = [];
23
+ var $bridge = {
24
+ registerHandler: function () {
25
+ cache.push({
26
+ type: 'registerHandler',
27
+ params: __spreadArray([], arguments, true),
28
+ });
29
+ },
30
+ callHandler: function () {
31
+ cache.push({
32
+ type: 'callHandler',
33
+ params: __spreadArray([], arguments, true),
34
+ });
35
+ },
36
+ };
37
+ /* ios 初始化 */
38
+ function setupWebViewJavascriptBridge(callback) {
39
+ if (window.WebViewJavascriptBridge) {
40
+ return callback(window.WebViewJavascriptBridge);
41
+ }
42
+ if (window.WVJBCallbacks) {
43
+ return window.WVJBCallbacks.push(callback);
44
+ }
45
+ window.WVJBCallbacks = [callback];
46
+ var WVJBIframe = document.createElement('iframe');
47
+ WVJBIframe.style.display = 'none';
48
+ WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
49
+ document.documentElement.appendChild(WVJBIframe);
50
+ setTimeout(function () {
51
+ document.documentElement.removeChild(WVJBIframe);
52
+ }, 0);
53
+ }
54
+ /* 用于创建桥接对象的函数 , android 初始化 */
55
+ function connectWebViewJavascriptBridge(callback) {
56
+ //如果桥接对象已存在,则直接调用callback函数
57
+ if (window.WebViewJavascriptBridge) {
58
+ callback(window.WebViewJavascriptBridge);
54
59
  }
55
- /* 用于创建桥接对象的函数 , android 初始化 */
56
- function connectWebViewJavascriptBridge(callback) {
57
- //如果桥接对象已存在,则直接调用callback函数
58
- if (window.WebViewJavascriptBridge) {
60
+ //否则添加一个监听器来执行callback函数
61
+ else {
62
+ document.addEventListener('WebViewJavascriptBridgeReady', function () {
59
63
  callback(window.WebViewJavascriptBridge);
60
- }
61
- //否则添加一个监听器来执行callback函数
62
- else {
63
- document.addEventListener('WebViewJavascriptBridgeReady', function () {
64
- callback(window.WebViewJavascriptBridge);
65
- }, false);
66
- }
64
+ }, false);
67
65
  }
68
- /* ios/android */
69
- if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
70
- //ios 新版桥接
71
- if (/(kbapp)/i.test(navigator.userAgent)) {
72
- setupWebViewJavascriptBridge(function (bridge) {
73
- $bridge = bridge;
74
- initRegister(bridge);
75
- });
76
- }
77
- else {
78
- connectWebViewJavascriptBridge(function (bridge) {
79
- $bridge = bridge;
80
- initRegister(bridge);
81
- });
82
- }
66
+ }
67
+ /* ios/android */
68
+ if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
69
+ //ios 新版桥接
70
+ if (/(kbapp)/i.test(navigator.userAgent)) {
71
+ setupWebViewJavascriptBridge(function (bridge) {
72
+ $bridge = bridge;
73
+ initRegister(bridge);
74
+ });
83
75
  }
84
- else if (/(Android)/i.test(navigator.userAgent)) {
76
+ else {
85
77
  connectWebViewJavascriptBridge(function (bridge) {
86
78
  $bridge = bridge;
87
79
  initRegister(bridge);
88
80
  });
89
81
  }
90
- // IOS中会主动调用该方法,不清楚为什么
91
- window.setWebViewFlag = function () { };
92
- function initRegister(bridge) {
93
- bridge.init &&
94
- bridge.init(function (message, responseCallback) {
95
- var data = { 'Javascript Responds': 'Wee!' };
96
- responseCallback(data);
97
- });
98
- bridge.registerHandler('AppPayResult', function (data, responseCallback) {
99
- var responseData = { 'Javascript Says': 'Right back atcha!' };
100
- responseCallback(responseData);
101
- });
102
- bridge.registerHandler('UploadImageResult', function (data, responseCallback) {
103
- var responseData = { 'Javascript Says': 'Upload Success!' };
104
- responseCallback(responseData);
105
- });
106
- bridge.registerHandler('RichInputResult', function (data, responseCallback) {
107
- var responseData = { 'Javascript Says': 'Upload Success!' };
108
- responseCallback(responseData);
109
- });
110
- bridge.registerHandler('CommonResult', function (data, responseCallback) {
111
- var responseData = {
112
- 'Javascript Says': 'CommonResult Success!',
113
- };
114
- responseCallback(responseData);
115
- });
116
- bridge.registerHandler('CommonRequest', function (data, responseCallback) {
117
- var responseData = {
118
- 'Javascript Says': 'CommonRequest Success!',
119
- };
120
- responseCallback(responseData);
121
- });
122
- cache.forEach(function (_a) {
123
- var type = _a.type, params = _a.params;
124
- switch (type) {
125
- case 'registerHandler':
126
- bridge.registerHandler.apply(bridge, params);
127
- break;
128
- case 'callHandler':
129
- bridge.callHandler.apply(bridge, params);
130
- break;
131
- default:
132
- break;
133
- }
82
+ }
83
+ else if (/(Android)/i.test(navigator.userAgent)) {
84
+ connectWebViewJavascriptBridge(function (bridge) {
85
+ $bridge = bridge;
86
+ initRegister(bridge);
87
+ });
88
+ }
89
+ // IOS中会主动调用该方法,不清楚为什么
90
+ window.setWebViewFlag = function () { };
91
+ function initRegister(bridge) {
92
+ bridge.init &&
93
+ bridge.init(function (message, responseCallback) {
94
+ var data = { 'Javascript Responds': 'Wee!' };
95
+ responseCallback(data);
134
96
  });
135
- }
136
- var VueBridgeWebView = {
137
- /**
138
- * Android / IOS 调用JS,需要明确调用的`function名称` .
139
- *
140
- *
141
- * @param name `function name`
142
- * @param registerCallback 回调的响应事件
143
- */
144
- registerHandler: function (name, registerCallback) {
145
- if ($bridge['registerHandler']) {
146
- setTimeout(function () {
147
- $bridge.registerHandler(name, registerCallback);
148
- }, bridgeConfig.bridgeWebViewDelay);
149
- }
150
- else {
151
- console.log("don't built-in WebView invoking ", name, '{registerHandler}');
152
- }
153
- },
154
- /**
155
- * JS 调用 Android / IOS
156
- *
157
- * name: 回调名称, android/ios 名称 ,eg: 'getUserInfo'
158
- * params 请求参数, eg: { 'userId' : 1}
159
- * callback: response(响应函数)
160
- *
161
- * eg: this.$bridge.callHandler('getUserInfo',{'userId':1},function(data){...})
162
- *
163
- */
164
- callHandler: function (name, params, callback) {
165
- if ($bridge['callHandler']) {
166
- try {
167
- $bridge.callHandler(name, params, function (data) {
168
- if (typeof callback == 'function') {
169
- /* 解决部分系统加载延迟导致 ios/android 不响应问题 */
170
- setTimeout(function () {
171
- callback(data);
172
- }, bridgeConfig.bridgeWebViewDelay);
173
- }
174
- });
175
- //TODO 待商榷 可优化
176
- $bridge.registerHandler('CommonResult', callback);
177
- $bridge.registerHandler('CommonRequest', callback);
178
- }
179
- catch (error) {
180
- console.log(error);
181
- }
97
+ bridge.registerHandler('AppPayResult', function (data, responseCallback) {
98
+ var responseData = { 'Javascript Says': 'Right back atcha!' };
99
+ responseCallback(responseData);
100
+ });
101
+ bridge.registerHandler('UploadImageResult', function (data, responseCallback) {
102
+ var responseData = { 'Javascript Says': 'Upload Success!' };
103
+ responseCallback(responseData);
104
+ });
105
+ bridge.registerHandler('RichInputResult', function (data, responseCallback) {
106
+ var responseData = { 'Javascript Says': 'Upload Success!' };
107
+ responseCallback(responseData);
108
+ });
109
+ bridge.registerHandler('CommonResult', function (data, responseCallback) {
110
+ var responseData = {
111
+ 'Javascript Says': 'CommonResult Success!',
112
+ };
113
+ responseCallback(responseData);
114
+ });
115
+ bridge.registerHandler('CommonRequest', function (data, responseCallback) {
116
+ var responseData = {
117
+ 'Javascript Says': 'CommonRequest Success!',
118
+ };
119
+ responseCallback(responseData);
120
+ });
121
+ cache.forEach(function (_a) {
122
+ var type = _a.type, params = _a.params;
123
+ switch (type) {
124
+ case 'registerHandler':
125
+ bridge.registerHandler.apply(bridge, params);
126
+ break;
127
+ case 'callHandler':
128
+ bridge.callHandler.apply(bridge, params);
129
+ break;
130
+ default:
131
+ break;
132
+ }
133
+ });
134
+ }
135
+ var VueBridgeWebView = {
136
+ /**
137
+ * Android / IOS 调用JS,需要明确调用的`function名称` .
138
+ *
139
+ *
140
+ * @param name `function name`
141
+ * @param registerCallback 回调的响应事件
142
+ */
143
+ registerHandler: function (name, registerCallback) {
144
+ if ($bridge['registerHandler']) {
145
+ setTimeout(function () {
146
+ $bridge.registerHandler(name, registerCallback);
147
+ }, bridgeConfig.bridgeWebViewDelay);
148
+ }
149
+ else {
150
+ console.log("don't built-in WebView invoking ", name, '{registerHandler}');
151
+ }
152
+ },
153
+ /**
154
+ * JS 调用 Android / IOS
155
+ *
156
+ * name: 回调名称, android/ios 名称 ,eg: 'getUserInfo'
157
+ * params 请求参数, eg: { 'userId' : 1}
158
+ * callback: response(响应函数)
159
+ *
160
+ * eg: this.$bridge.callHandler('getUserInfo',{'userId':1},function(data){...})
161
+ *
162
+ */
163
+ callHandler: function (name, params, callback) {
164
+ if ($bridge['callHandler']) {
165
+ try {
166
+ $bridge.callHandler(name, params, function (data) {
167
+ if (typeof callback == 'function') {
168
+ /* 解决部分系统加载延迟导致 ios/android 不响应问题 */
169
+ setTimeout(function () {
170
+ callback(data);
171
+ }, bridgeConfig.bridgeWebViewDelay);
172
+ }
173
+ });
174
+ //TODO 待商榷 可优化
175
+ $bridge.registerHandler('CommonResult', callback);
176
+ $bridge.registerHandler('CommonRequest', callback);
182
177
  }
183
- else {
184
- console.log("don't built-in WebView invoking ", name, '{callHandler}');
178
+ catch (error) {
179
+ console.log(error);
185
180
  }
186
- },
187
- };
188
- return VueBridgeWebView;
189
- });
181
+ }
182
+ else {
183
+ console.log("don't built-in WebView invoking ", name, '{callHandler}');
184
+ }
185
+ },
186
+ };
187
+ return VueBridgeWebView;
190
188
  });
package/dist/index.d.ts CHANGED
@@ -65,3 +65,19 @@ export declare function saveVideoToLocal(data: {
65
65
  /** 视频url(仅支持网络地址) */
66
66
  videoUrl: string;
67
67
  }): void;
68
+ /**
69
+ *
70
+ * @description 分享海报
71
+ * **示例代码**
72
+ ```js
73
+ import { sharePoster } from '@kbapp/js-bridge';
74
+
75
+ sharePoster({
76
+ imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
77
+ })
78
+ ```
79
+ */
80
+ export declare function sharePoster(data: {
81
+ /** 图片(仅支持网络地址,jpg/png) */
82
+ imageUrl: string;
83
+ }): void;
package/dist/index.js CHANGED
@@ -1,84 +1,105 @@
1
- define(["require", "exports", "./core"], function (require, exports, core_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.saveVideoToLocal = exports.saveImageToLocal = exports.invokeMoreShareModal = void 0;
5
- /**
6
- *
7
- * @description 唤起更多分享模态框
8
- *
9
- *
10
- * **示例代码**
11
- ```js
12
- import { invokeMoreShareModal } from '@kbapp/js-bridge';
13
-
14
- invokeMoreShareModal({
15
- title: '开吧分享',
16
- content: '开吧,开汽车上新生活!',
17
- url: 'http://www.kaiba315.com.cn/',
18
- imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
19
- })
20
- ```
21
- *
22
- * @returns {void} 该函数无返回值
23
- */
24
- function invokeMoreShareModal(data) {
25
- (0, core_1.callHandler)({
26
- name: 'OpenActRequest',
27
- params: {
28
- type: 58,
29
- data: data,
30
- },
31
- });
32
- }
33
- exports.invokeMoreShareModal = invokeMoreShareModal;
34
- /**
35
- *
36
- * @description 保存图片到本地.
37
- *
38
- * **示例代码**
39
- ```js
40
- import { saveImageToLocal } from '@kbapp/js-bridge';
41
-
42
- saveImageToLocal({
43
- imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
44
- })
45
- ```
46
- *
47
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
48
- */
49
- function saveImageToLocal(data) {
50
- (0, core_1.callHandler)({
51
- name: 'OpenActRequest',
52
- params: {
53
- type: 62,
54
- data: data,
55
- },
56
- });
57
- }
58
- exports.saveImageToLocal = saveImageToLocal;
59
- /**
60
- *
61
- * @description 保存视频到本地.
62
- *
63
- * **示例代码**
64
- ```js
65
- import { saveVideoToLocal } from '@kbapp/js-bridge';
66
-
67
- saveVideoToLocal({
68
- videoUrl: 'https://static.kaiba315.com.cn/c6e16a556489430fb00557a27be64229.mp4'
69
- })
70
- ```
71
- *
72
- * @returns {void} 无法确认是否正常保存,因此该函数无返回值
73
- */
74
- function saveVideoToLocal(data) {
75
- (0, core_1.callHandler)({
76
- name: 'OpenActRequest',
77
- params: {
78
- type: 63,
79
- data: data,
80
- },
81
- });
82
- }
83
- exports.saveVideoToLocal = saveVideoToLocal;
84
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sharePoster = exports.saveVideoToLocal = exports.saveImageToLocal = exports.invokeMoreShareModal = void 0;
4
+ var core_1 = require("./core");
5
+ /**
6
+ *
7
+ * @description 唤起更多分享模态框
8
+ *
9
+ *
10
+ * **示例代码**
11
+ ```js
12
+ import { invokeMoreShareModal } from '@kbapp/js-bridge';
13
+
14
+ invokeMoreShareModal({
15
+ title: '开吧分享',
16
+ content: '开吧,开汽车上新生活!',
17
+ url: 'http://www.kaiba315.com.cn/',
18
+ imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
19
+ })
20
+ ```
21
+ *
22
+ * @returns {void} 该函数无返回值
23
+ */
24
+ function invokeMoreShareModal(data) {
25
+ (0, core_1.callHandler)({
26
+ name: 'OpenActRequest',
27
+ params: {
28
+ type: 58,
29
+ data: data,
30
+ },
31
+ });
32
+ }
33
+ exports.invokeMoreShareModal = invokeMoreShareModal;
34
+ /**
35
+ *
36
+ * @description 保存图片到本地.
37
+ *
38
+ * **示例代码**
39
+ ```js
40
+ import { saveImageToLocal } from '@kbapp/js-bridge';
41
+
42
+ saveImageToLocal({
43
+ imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
44
+ })
45
+ ```
46
+ *
47
+ * @returns {void} 无法确认是否正常保存,因此该函数无返回值
48
+ */
49
+ function saveImageToLocal(data) {
50
+ (0, core_1.callHandler)({
51
+ name: 'OpenActRequest',
52
+ params: {
53
+ type: 62,
54
+ data: data,
55
+ },
56
+ });
57
+ }
58
+ exports.saveImageToLocal = saveImageToLocal;
59
+ /**
60
+ *
61
+ * @description 保存视频到本地.
62
+ *
63
+ * **示例代码**
64
+ ```js
65
+ import { saveVideoToLocal } from '@kbapp/js-bridge';
66
+
67
+ saveVideoToLocal({
68
+ videoUrl: 'https://static.kaiba315.com.cn/c6e16a556489430fb00557a27be64229.mp4'
69
+ })
70
+ ```
71
+ *
72
+ * @returns {void} 无法确认是否正常保存,因此该函数无返回值
73
+ */
74
+ function saveVideoToLocal(data) {
75
+ (0, core_1.callHandler)({
76
+ name: 'OpenActRequest',
77
+ params: {
78
+ type: 63,
79
+ data: data,
80
+ },
81
+ });
82
+ }
83
+ exports.saveVideoToLocal = saveVideoToLocal;
84
+ /**
85
+ *
86
+ * @description 分享海报
87
+ * **示例代码**
88
+ ```js
89
+ import { sharePoster } from '@kbapp/js-bridge';
90
+
91
+ sharePoster({
92
+ imageUrl: 'https://static.kaiba315.com.cn/kaiba-logo.png'
93
+ })
94
+ ```
95
+ */
96
+ function sharePoster(data) {
97
+ (0, core_1.callHandler)({
98
+ name: 'OpenActRequest',
99
+ params: {
100
+ type: 58,
101
+ data: data,
102
+ },
103
+ });
104
+ }
105
+ exports.sharePoster = sharePoster;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.1.0-alpha.0",
6
+ "version": "0.2.1-alpha.0",
7
7
  "description": "开吧客户端桥接",
8
8
  "main": "./dist/index.js",
9
9
  "author": "along"
package/tsconfig.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "target": "ES5",
4
- "module": "es2015",
4
+ "module": "CommonJS",
5
5
  "allowJs": true,
6
6
  "strict": true,
7
7
  "outDir": "./dist",