# uniapp-jsbridge
**Repository Path**: kvker/uniapp-jsbridge
## Basic Information
- **Project Name**: uniapp-jsbridge
- **Description**: 一个通用的,基于UniAPP的APP端与内置HTML文件bridge的方式,支持外部url
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-12-03
- **Last Updated**: 2023-06-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# uniapp-jsbridge
## APP端
### 使用方法
* 监听 @message,此方法在 APP 中是实时监听 ``
* 引用 `import { bridge } from '@/services/services.js'`
* 实现message方法
```js
import {
bridge,
} from '@/services/services.js'
export default {
data() {
return {
ws: {
progress: {
color: 'red',
},
},
}
},
onLoad(options) {
options.url = '/hybrid/html/index.html'
this.url = options.url || 'https://github.com/kvker/uniapp-jsbridge'
},
methods: {
message(e) {
let data = e.detail.data[0]
bridge.regist(data)
.then(() => {
let currentWebview = this.$scope.$getAppWebview()
let webview = currentWebview.children()[0]
return bridge.callback(webview, data.key, {
message: 'from uni'
})
})
.catch(error => {
uni.showToast({
title: error.message,
icon: 'error'
})
})
}
}
}
```
## Web|H5端
* 引用相关类库,vconsole 方便调试、uni-webview 建立通信、bridge 为核心库
```js
```
* 实现 installedBridge 方法,这里直接调用 bridge,实际应该是某些操作调用
```js
function installedBridge() {
bridge.postMessage({
key: 'USERINFO',
callback: function(ret) {
alert(JSON.stringify(ret))
}
})
}
```