# DSBridge-Ohos
**Repository Path**: jiangbenfu/DSBridge-Ohos
## Basic Information
- **Project Name**: DSBridge-Ohos
- **Description**: Javascript和OpenHarmony原生WebView组件之间同步或异步的调用彼此的函数
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2021-06-23
- **Last Updated**: 2021-06-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DSBridge-Ohos
## 项目介绍
- 项目名称:DSBridge-Ohos
- 所属系列:OpenHarmony的第三方组件适配移植
- 功能:Javascript和openharmony原生WebView组件之间同步或异步的调用彼此的函数
- 项目移植状态:主功能完成
- 调用差异:无
- 基线版本:Releases v3.0.0
- 开发版本:sdk5,DevEco Studio2.1 Release
## 效果演示
## 安装教程
1.在项目根目录下的build.gradle文件中,
```
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
}
}
```
2.在entry模块的build.gradle文件中,
```
dependencies {
implementation('com.gitee.chinasoft_ohos:DSBridge-ohos:0.0.1-SNAPSHOT')
......
}
```
在sdk5,DevEco Studio2.1 Release下项目可直接运行,如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件,
并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
## 使用说明
1.新建一个Java类,实现API
```java
public class JsApi{
//同步API OpenHarmony WebView Javascript 方法无需 @JavascriptInterface Annotation
public String testSyn(Object msg) {
return msg + "[syn call]";
}
//异步API
public void testAsyn(Object msg, CompletionHandler handler) {
handler.complete(msg+" [ asyn call]");
}
}
```
2.添加API类实例到 DWebView .
```javascript
import wendu.dsbridge.DWebView
...
DWebView dwebView = (DWebView) findComponentById(ResourceTable.Id_dwebview);
dwebView.addJavascriptObject(new JsApi(), null);
```
3.在Javascript中调用原生 (Java/Object-c/swift) API ,并注册一个 javascript API供原生调用.
- 初始化 dsBridge
```javascript
//cdn方式引入初始化代码(中国地区慢,建议下载到本地工程)
//
//npm方式安装初始化代码
//npm install dsbridge@3.1.3
var dsBridge=require("dsbridge")
```
- 调用原生API ,并注册一个 javascript API供原生调用.
```javascript
//同步调用
var str=dsBridge.call("testSyn","testSyn");
//异步调用
dsBridge.call("testAsyn","testAsyn", function (v) {
alert(v);
})
//注册 javascript API
dsBridge.register('addValue',function(l,r){
return l+r;
})
```
4.在Java中调用 Javascript API
```java
dwebView.callHandler("addValue",new Object[]{3,4},new OnReturnValue(){
@Override
public void onValue(Integer retValue) {
Log.d("jsbridge","call succeed,return value is "+retValue);
}
});
```
## 测试信息
CodeCheck代码测试无异常
CloudTest代码测试无异常
火绒安全病毒安全检测通过
当前版本demo功能与原组件基本无差异
## 版本迭代
- 0.0.1-SNAPSHOT
## 版权和许可信息
```
无
```