# webbrowser-js-bridge
**Repository Path**: epii/webbrowser-js-bridge
## Basic Information
- **Project Name**: webbrowser-js-bridge
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-10-15
- **Last Updated**: 2020-12-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JsBridge 教程
## 模块开发
#### 1 引入JsBridge.dll 和Newtonsoft.Json.dll
#### 2 编写某块代码 例如
```
using System.Windows.Forms;
using JsBridge;
using Newtonsoft.Json.Linq;
namespace Module
{
[System.Runtime.InteropServices.ComVisible(true)]
public class MyModule : Object, IJsCall
{
public void onInit(WebBrowser webBrowser, Form form)
{
}
public void fun1(JObject args, CallBack callBack)
{
MessageBox.Show(args["msg"].ToString(),args.ContainsKey("title")? args["title"].ToString():"提示");
callBack.success(args);
}
public void fun2(JObject args, CallBack callBack)
{
MessageBox.Show(args["msg"].ToString(), args.ContainsKey("title") ? args["title"].ToString() : "提示w");
callBack.success(args);
}
public void onDestroy()
{
}
}
}
```
#### 3 生成dll文件
#### 4 在使用此模块的软件中修改 *module.json*(exe文件同级目录) 增加模块信息
```
"MyModule":{"dll":'path/to/MyModule.dll',"class":"Module.MyModule","methods":"fun1,fun2"}
```
##### CallBack 类 方法
```
callBack.success(data);//成功时候
callBack.error(data);//失败时候
callBack.callFunction(int.Parse(args["onOk"].ToString()), data);//参数中某一个函数
```
## 项目开发
#### 1 引入JsBridge.dll 和Newtonsoft.Json.dll
#### 2 创建webbrowser, 让webbrowser具有bridge功能的代码
```
Bridge.bridgeWebBrowser(webbrowser, this);
```
#### 3 在exe所在目录下创建 module.json,并添加模块。 如:
```
{
"window":{"dll":'C:/Users/Administrator/source/repos/Module/bin/Debug/Module.dll',"class":"Module.Window","methods":"alert,alert2"}
}
```
#### 4 在html 代码中编写js 代码调用模块
```
```
如果报JSON未定义,则需要在html中增加
```
```
## 工具类WsLibs.Tools.Utils
```
Utils.getApplicationRootDir();//获取exe文件所在目录
Utils.gile_get_content(string path);
Utils.getConfig();//获取config.json 配置内容
Utils.getPathInConfig(string name) ;//获取配置中的路径,智能化
```