你好,我在使用
bb.biz.util.open 这个 API 时,无法成功,会出现失败信息:
http://x.x.x.x
errorMessage: Jsapi Should NOT Call,
selector String = open:to:
errorCode: 7
我的环境是,手机系统版本:iOS 9.3.1 (13E238) ,钉钉版本:2.9.0 (1443886) 。
我找过相关信息:bbs.aliyun.com/read/265723.html ,这里最后好像确认是钉钉的 BUG 。
我现在在已知消息中,确认我的代码是没有问题,如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>钉钉登录</title>
<script type="text/javascript" src="//g.alicdn.com/ilw/ding/0.8.6/scripts/dingtalk.js"></script>
<script type="text/javascript" src="//s.zys.me/js/jq/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
var infoDefer = $.Deferred();
$.ajax({
url: '/dingding/jsapi-sign',
data: {url: location.href},
dataType: 'json',
success: function(response){
var info = response.data;
infoDefer.resolve(info);
}
});
// 这个事件处理得有问题, 延迟绑定就无效了
dd.ready(function(){
infoDefer.done(function(info){
dd.config({
agentId: info.agent_id, // 必填,微应用ID
corpId: info.corp_id,//必填,企业ID
timeStamp: info.timestamp, // 必填,生成签名的时间戳
nonceStr: info.nonce, // 必填,生成签名的随机串
signature: info.sign, // 必填,签名
jsApiList: [
'runtime.permission.requestAuthCode'
, 'device.notification.showPreloader'
, 'device.notification.hidePreloader'
, 'device.notification.actionSheet'
, 'device.notification.vibrate'
, 'dd.biz.navigation.setTitle'
, 'biz.navigation.setMenu'
, 'biz.navigation.setRight'
, 'biz.util.open'
] // 必填,需要使用的jsapi列表
});
dd.device.notification.showPreloader({
text: "api调用是没有问题的",
showIcon: true
});
dd.biz.util.open({
name: 'profile', //页面名称,我试其它的,比如像 friendAdd 也是一样的错
params: {
id: 'manager6789', // 这个信息从后台确认,并写死用于调试
corpId: info.corp_id
},
onSuccess : function() {},
onFail : function(err) {
var l = $.map(err, function (v, k) { return k + ': ' + v });
alert(l.join('\n'));
}
});
});
});
});
</script>
</body>
</html>
如果有什么更多的我能做,有助于定位的问题的,也在回复中让我知道。
谢谢。
-------------------------
正常调用流程是:先进行dd.config,然后dd.ready,在ready里面进行bb.biz.util.open调用
重申下。
再形象些:
dd.config{...}
dd.ready{...}
dd.error{...}
-------------------------
-------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>钉钉登录</title>
<script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.8.6/scripts/dingtalk.js"></script>
<script type="text/javascript" src="http://s.zys.me/js/jq/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$.ajax({
url: '/dingding/jsapi-sign',
data: {url: location.href},
dataType: 'json',
success: function(response){
var info = response.data;
;(function(){
//return;
dd.config({
agentId: info.agent_id,
corpId: info.corp_id,
timeStamp: info.timestamp,
nonceStr: info.nonce,
signature: info.sign,
jsApiList: [ 'biz.util.open' ]
});
})();
dd.ready(function(){
alert('ok');
});
alert('here');
}
});
});
</script>
</body>
</html>
-------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>钉钉登录</title>
<script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.8.6/scripts/dingtalk.js"></script>
<script type="text/javascript" src="http://s.zys.me/js/jq/jquery.min.js"></script>
<script type="text/javascript" src="http://192.168.0.102:8081/target/target-script-min.js#anonymous"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$.ajax({
url: '/dingding/jsapi-sign',
data: {url: location.href},
dataType: 'json',
success: function(response){
var info = response.data;
;(function(){
//return;
dd.config({
agentId: info.agent_id,
corpId: info.corp_id,
timeStamp: info.timestamp,
nonceStr: info.nonce,
signature: info.sign,
jsApiList: [ 'biz.util.open' ]
});
})();
dd.ready(function(){
alert('ok');
});
alert('here');
dd.error();
}
});
});
</script>
</body>
</html>
-------------------------
再形象些: dd.config{...} dd.ready{...} dd.error{...}
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。