支持在钉钉客户端的所有容器(Web,Native or Weex)中调用JS-API(All-in Mobile)
JavaScript SDK For Dingtalk
npm install dingtalk-javascript-sdk --save
注意:使用
--save
将版本信息存储起来,方便后续升级维护。
入口weex-entry.js:
import { createElement, render } from 'rax';
import App from './app.js';
render(<App></App>);
业务app.js:
import { createElement, Component, render} from 'rax';
import View from 'rax-view';
import Text from 'rax-text';
import dingtalk from 'dingtalk-javascript-sdk';
export default class App extends Component{
render(){
return(
<View>
<Text onPress={
()=>{
dingtalk.ready(function(){
const dd = dingtalk.apis;
dd.biz.util.openLink({
url: 'https://github.com/icepy/dingtalk-javascript-sdk'
})
})
}
}>
Hello World icepy !!!
</Text>
</View>
);
}
}
注意:
例子:
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
dd.biz.navigation.setTitle({
title: 'icepy'
});
})
例子:
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.config({
any Object your server response sign
});
例子:
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.error(function(err){
console.log(err);
});
例子:
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
});
其他API的具体使用方法请参考 https://open-doc.dingtalk.com/doc2/detail?spm=0.0.0.0.O1cH5b&treeId=171&articleId=104906&docType=1
为了达到让你的应用可以同时使用两种环境下的js-api,你应该继续使用 import dingtalk from 'dingtalk-javascript-sdk
的方式来引入模块,在这个模块中会自动判断环境给你导出相应的SDK模块。
H5环境:
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
// 设置导航
dd.biz.navigation.setTitle({
title: 'icepy'
});
});
当你注册了事件之后,触发事件将由客户端来执行。
resume
事件当页面重新可见并可以交互的时候,钉钉客户端会触发这个事件。
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
dingtalk.on('resume',function(){
// do something
})
});
pause
事件当页面不可见时,钉钉客户端会触发这个事件。
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
dingtalk.on('pause',function(){
// do something
})
});
navRightButton
事件导航栏右侧按钮的点击事件。
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
dd.biz.navigation.setRight({
control: true,
show: true,
text: 'icepy'
})
dingtalk.on('navRightButton',function(){
// do something
})
})
如果想让你注册的navRightButton
客户端可以正常的触发,需要在设置setRight
时传control
为true
。
navTitle
事件导航栏上title
的点击事件
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
dingtalk.on('navTitle',function(){
// do something
})
});
navHelpIcon
事件导航栏上点击icon时会触发的事件
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
dd.biz.navigation.setIcon({
showIcon: true,
iconIndex: 101
})
dingtalk.on('navHelpIcon',function(){
// do something
})
});
backbutton
事件导航栏左侧按钮的点击事件,注意:这个事件触发之后会自动返回
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
const dd = dingtalk.apis;
dd.biz.navigation.setLeft({
show: true,
control: true,
text: 'icepy'
});
dingtalk.on('backbutton',function(){
//do something
})
})
如果想让你注册的backbutton
客户端可以正常的触发,需要在设置setLeft
时传control
为true
。
navMenu
事件当你在导航栏右侧设置了多个按钮,你就需要注册navMenu
事件来处理点击。
import dingtalk from 'dingtalk-javascript-sdk';
dingtalk.ready(function(){
dingtalk.on('navMenu',function(){
// do something
})
})