- 执行命令:`npm i stbridge-api`
npm install stbridge-apinpm i stbridge-api- 在main.js文件中全局注入
``javascript`
require('stbridge-api')
javascript
window.stBridge.common.getUserInfo(response => {
console.log(response)
})
`
#### - 注册js api供native调用
`javascript
window.stBridge.custom.registerAsyn('namespace.api', (params, responseCallback) => {
console.log(JSON.stringify(params));
responseCallback(response);
})
`
#### - 添加自定义api(需android端api支持)
###### 1.新建一个Java类,实现API
`java
public class JsApi{
//同步API
@JavascriptInterface
public String testSyn(Object msg) {
return msg + "[syn call]";
} //异步API
@JavascriptInterface
public void testAsyn(Object msg, CompletionHandler handler) {
handler.complete(msg+" [ asyn call]");
}
}
`
###### 2. 添加API类实例到 DWebView .
`javascript
import wendu.dsbridge.DWebView
...
DWebView dwebView= (DWebView) findViewById(R.id.dwebview);
dwebView.addJavascriptObject(new JsApi(), 'custom');
`###### 3. 在Javascript中调用原生 (Java/Object-c/swift) API ,并注册一个 javascript API供原生调用.
- 调用原生API ,并注册一个 javascript API供原生调用.
`javascript window.stBridge.custom.call('custom.testSyn', params)
//注册 javascript API
window.stBridge.custom.registerAsyn('custom.testJava', (l, r) => {
return l + r;
})
`###### 4. 在Java中调用 Javascript API
`java
dwebView.callHandler("custom.testJava",new Object[]{3,4},new OnReturnValue(){
@Override
public void onValue(Integer retValue) {
Log.d("jsbridge","call succeed,return value is "+retValue);
}
});
``