rxjs-native-bridge 1.0.0 → 1.0.11
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 +53 -32
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -6,75 +6,96 @@ js-bridge https://github.com/uknownothingsnow/JsBridge?tab=readme-ov-file
|
|
|
6
6
|
# 使用
|
|
7
7
|
安装rxjs依赖<br/>
|
|
8
8
|
npm install rxjs-native-bridge<br/>
|
|
9
|
-
### 初始化js-bridge main.
|
|
10
|
-
|
|
9
|
+
### 初始化js-bridge main.ts
|
|
10
|
+
```ts
|
|
11
|
+
import 'rxjs-native-bridge'
|
|
12
|
+
```
|
|
11
13
|
### 扩展
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
自定义
|
|
15
|
-
|
|
14
|
+
```ts
|
|
15
|
+
// import { jsBridge, rxJsBridge, JSBridge, RxJSBridge } from 'rxjs-native-bridge'
|
|
16
|
+
// 自定义jsBridge扩展继承 JSBridge
|
|
17
|
+
// 自定义RxJSBridge扩展继承 RxJSBridge
|
|
18
|
+
```
|
|
16
19
|
### 不使用rxjs
|
|
20
|
+
```ts
|
|
17
21
|
import { jsBridge } from 'rxjs-native-bridge'<br/>
|
|
22
|
+
```
|
|
18
23
|
#### js调用native
|
|
19
|
-
|
|
24
|
+
```ts
|
|
20
25
|
jsBridge.callHandler('handlerName', { num: 1 }, res => {
|
|
21
|
-
|
|
22
|
-
})
|
|
23
|
-
|
|
26
|
+
console.log(res)
|
|
27
|
+
}): void
|
|
28
|
+
```
|
|
24
29
|
#### js注册方法共native调用
|
|
25
|
-
|
|
30
|
+
```ts
|
|
26
31
|
jsBridge.registerHandler('handlerName', (params, callback) => {
|
|
27
32
|
console.log('native 参数', params)
|
|
28
33
|
callback({ name: 'hello' })
|
|
29
|
-
})
|
|
30
|
-
|
|
34
|
+
}): void
|
|
35
|
+
```
|
|
31
36
|
### 使用rxjs
|
|
32
37
|
安装rxjs依赖<br/>
|
|
33
38
|
npm install rxjs@7.8.2<br/>
|
|
34
|
-
import { rxJsBridge } from 'rxjs-native-bridge'<br/>
|
|
35
39
|
#### js调用native全局回调值拦截器
|
|
40
|
+
```ts
|
|
41
|
+
import { rxJsBridge } from 'rxjs-native-bridge'
|
|
36
42
|
rxJsBridge.useCallInterceptor<{ data: unknown }>(res => {
|
|
37
|
-
if (!res) throw new Error('native error')
|
|
43
|
+
if (!res) throw new Error('native error') // 抛出错误后会被订阅者订阅到错误而不是成功
|
|
38
44
|
if (res?.data) return res.data
|
|
39
|
-
})
|
|
45
|
+
}): RxJsBridge
|
|
46
|
+
```
|
|
40
47
|
#### js调用native
|
|
41
|
-
|
|
48
|
+
```ts
|
|
49
|
+
rxJsBridge
|
|
50
|
+
.call<{ num: number }, { name: string }>('test', { num: 1 })
|
|
51
|
+
.subscribe(res => {
|
|
42
52
|
console.log(res.name)
|
|
43
53
|
})
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
rxJsBridge.register('handlerName')
|
|
48
|
-
|
|
49
|
-
rxJsBridge.
|
|
50
|
-
rxJsBridge.
|
|
51
|
-
|
|
52
|
-
// 其他模块监听native
|
|
54
|
+
```
|
|
55
|
+
#### js注册方法供native调用
|
|
56
|
+
```ts
|
|
57
|
+
rxJsBridge.register('handlerName'): RxJsBridge // 注册方法供native调用,建议在项目入口统一注册
|
|
58
|
+
// 设置事件的回调参数,可多处覆盖更新,只会回调最新setState的值给native
|
|
59
|
+
rxJsBridge.setState('handlerName', { name: 'hello' }): void
|
|
60
|
+
rxJsBridge.delState('handlerName'): void // 删除对应函数的回调值,删除后回调为null
|
|
61
|
+
rxJsBridge.clearState(): void // 清空所有回调值,回调为null
|
|
62
|
+
// 其他模块监听native调用提供的方法
|
|
53
63
|
const sub = rxJsBridge.on('handlerName').subscribe(({ params }) => {
|
|
54
64
|
console.log('native 传的参数', params)
|
|
55
65
|
})
|
|
56
|
-
|
|
57
66
|
sub.unsubscribe() // 取消监听
|
|
67
|
+
```
|
|
58
68
|
##### 监听执行并自动取消
|
|
69
|
+
```ts
|
|
59
70
|
rxJsBridge.once('handlerName').subscribe(({ params }) => {
|
|
60
71
|
console.log('native 参数', params)
|
|
61
72
|
})
|
|
73
|
+
```
|
|
62
74
|
###### or
|
|
75
|
+
```ts
|
|
63
76
|
rxJsBridge
|
|
64
77
|
.event('handlerName')
|
|
65
78
|
.pipe(take(1))
|
|
66
79
|
.subscribe(({ params }) => {
|
|
67
80
|
console.log('native 参数', params)
|
|
68
81
|
})
|
|
69
|
-
|
|
70
|
-
|
|
82
|
+
// 注意:once和event方法在没有register时会自动注册 register只注册不监听
|
|
83
|
+
```
|
|
84
|
+
##### 同时注册并监听事件
|
|
85
|
+
```ts
|
|
86
|
+
// 链式调用
|
|
87
|
+
const sub = rxJsBridge
|
|
71
88
|
.register('handlerName')
|
|
72
89
|
.on('handlerName')
|
|
73
90
|
.subscribe(({ params }) => {
|
|
74
91
|
console.log('native 参数', params)
|
|
75
92
|
})
|
|
76
|
-
|
|
77
|
-
|
|
93
|
+
sub.unsubscribe() // 取消监听
|
|
94
|
+
// or
|
|
95
|
+
rxJsBridge.once('handlerName').subscribe(({ params }) => {
|
|
96
|
+
console.log('native 参数', params)
|
|
97
|
+
})
|
|
98
|
+
// or
|
|
78
99
|
const sub = rxJsBridge
|
|
79
100
|
.event('handlerName')
|
|
80
101
|
.subscribe(({ params }) => {
|
|
@@ -82,6 +103,6 @@ const sub = rxJsBridge
|
|
|
82
103
|
})
|
|
83
104
|
|
|
84
105
|
sub.unsubscribe() // 取消监听
|
|
85
|
-
|
|
106
|
+
```
|
|
86
107
|
### 构建项目
|
|
87
108
|
npm run build
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rxjs-native-bridge",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/ztf-git/rxjs-native-bridge"
|
|
8
8
|
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"rxjs-native-bridge",
|
|
11
|
+
"rxjs",
|
|
12
|
+
"native",
|
|
13
|
+
"jsbridge",
|
|
14
|
+
"javascript",
|
|
15
|
+
"typescript"
|
|
16
|
+
],
|
|
9
17
|
"files": [
|
|
10
18
|
"dist"
|
|
11
19
|
],
|