# 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 ## 版权和许可信息 ``` 无 ```