国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
釘釘免登陸前端操作詳解
在釘釘免登陸中,前端操作是很重要的,因?yàn)樵谇岸宋覀冃枰{(diào)用釘釘?shù)膉sapi來(lái)獲取code,而這個(gè)code值是至關(guān)重要的。所以我

再次清清楚楚的解析一遍前端的操作。下面的是我寫的demo,我講以這個(gè)demo為例進(jìn)行講解。

先是demo的主頁(yè)代碼:

  1. <!DOCTYPE html>  
  2. <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>  
  3. <html>  
  4.     <head>  
  5.         <meta charset="utf-8">  
  6.         <title>dingding-1</title>  
  7.           
  8.         <script type="text/javascript">  
  9.             var _config = <%= controler.GetConfigs.getConfig(request) %>;  
  10.         </script>  
  11.   
  12.         //調(diào)用jquery需要的庫(kù),手機(jī)版和電腦版的不同  
  13.         <script type="text/javascript" src="javascripts/zepto.min.js">  
  14.         </script>  
  15.   
  16.         //手機(jī)版釘釘免登引入的jsapi,和電腦版引入的不同  
  17.         <script type="text/javascript" src="http://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js">  
  18.         </script>  
  19.           
  20.         //獲取code碼值的js文件  
  21.         <script type="text/javascript" src="javascripts/demo.js">  
  22.         </script>  
  23.     </head>  
  24.   
  25.     <body>  
  26.         <p id="userName">釘釘test</P>  
  27.         <p id="userId">未知</p>  
  28.     </body>  
  29.   
  30. </html>  
然后是調(diào)用jsapi前端的js代碼文件demo.js(我放在項(xiàng)目的javascripts文件夾下)
代碼如下:

  1. dd.config({                                                          //實(shí)現(xiàn)驗(yàn)證  
  2.             agentId : _config.agentId,  
  3.             corpId : _config.corpId,  
  4.             timeStamp : _config.timeStamp,  
  5.             nonceStr : _config.nonceStr,  
  6.             signature : _config.signature,  
  7.             jsApiList : [  
  8.                     'runtime.info',  
  9.                     'biz.contact.choose',  
  10.                     'device.notification.confirm',   
  11.                     'device.notification.alert',  
  12.                     'device.notification.prompt',  
  13.                     'biz.ding.post',  
  14.                     'biz.util.openLink' ]  
  15.         });  
  16.   
  17. dd.ready(function() {                                               //驗(yàn)證成功  
  18.   
  19.     dd.runtime.permission.requestAuthCode({                         //獲取code碼值  
  20.         corpId : _config.corpId,  
  21.         onSuccess : function(info) {  
  22.             alert('authcode: ' + info.code);  
  23.             $.ajax({  
  24.                 url : 'userinfo?code=' + info.code + '&corpid='     //請(qǐng)求后臺(tái)通過(guò)code值獲得userId  
  25.                         + _config.corpId,  
  26.                 type : 'GET',  
  27.                 success : function(data, status, xhr) {  
  28.                     var info = JSON.parse(data);  
  29.   
  30.                     document.getElementById("userName").innerHTML = info.name;  
  31.                     document.getElementById("userId").innerHTML = info.userid;  
  32.   
  33.                 },  
  34.                 error : function(xhr, errorType, error) {  
  35.                     logger.e("yinyien:" + _config.corpId);  
  36.                     alert(errorType + ', ' + error);  
  37.                 }  
  38.             });  
  39.   
  40.         },  
  41.         onFail : function(err) {  
  42.             alert('fail: ' + JSON.stringify(err));  
  43.         }  
  44.     });  
  45. });  
  46.   
  47. dd.error(function(err) {                                             //驗(yàn)證失敗  
  48.     alert("進(jìn)入到error中");  
  49.     document.getElementById("userName").innerHTML = "驗(yàn)證出錯(cuò)";  
  50.     alert('dd error: ' + JSON.stringify(err));  
  51. });  

當(dāng)我們?cè)卺斸斒謾C(jī)版點(diǎn)擊微應(yīng)用時(shí),微應(yīng)用就訪問(wèn)我的demo的主頁(yè),在主頁(yè)里定義了一個(gè)變量_config,這個(gè)變量是用來(lái)接收后臺(tái)計(jì)算出來(lái)的驗(yàn)證需要的參數(shù)(詳見我的博客釘釘免登詳解)。然后便會(huì)去執(zhí)行我們引入的demo.js文件,這個(gè)文件中所有調(diào)用的接口函數(shù)在jsapi中都有定義(在主頁(yè)的代碼中我們也引入了jsapi),然后我們釘釘手機(jī)版就相當(dāng)于一個(gè)對(duì)象,這個(gè)對(duì)象名就是dd,我們?cè)賒emo.js中調(diào)用這個(gè)對(duì)象執(zhí)行了一些操作。


首先得操作是驗(yàn)證信息,通過(guò)調(diào)用函數(shù)config()來(lái)實(shí)現(xiàn),驗(yàn)證成功就會(huì)去執(zhí)行dd.ready()這個(gè)函數(shù)中定義的函數(shù),如果驗(yàn)證失敗,就執(zhí)行error()函數(shù)。注意,ready和error都是回調(diào)函數(shù),要先執(zhí)行config(),才會(huì)執(zhí)行回調(diào)函數(shù)。并且所有的驗(yàn)證成功后的操作都要放在ready()中才會(huì)被執(zhí)行。


最后我再總結(jié)一下常見的錯(cuò)誤:
1.config(),ready()等接口得不到執(zhí)行:
有幾種原因會(huì)造成這種情況,最常見的就是你沒有在手機(jī)上訪問(wèn)demo主頁(yè),而是隨便找了一個(gè)電腦做測(cè)試訪問(wèn)。因?yàn)閐d對(duì)象
是釘釘應(yīng)用,只要在釘釘手機(jī)版訪問(wèn)時(shí),才會(huì)有dd對(duì)象,相應(yīng)的接口方法才會(huì)得到執(zhí)行。另外一種常見的原因是你寫的js文件有錯(cuò)誤,錯(cuò)誤就會(huì)導(dǎo)致js文件執(zhí)行不下去,所以建議你用PC版的釘釘去調(diào)試,先下載一個(gè)PC版的釘釘RC版(RC版就是調(diào)試版),然后在RC版釘釘上找一個(gè)空白的地方右鍵,就能看到show DevTools,點(diǎn)擊進(jìn)去,然后你再RC版中訪問(wèn)一下你的微應(yīng)用,相應(yīng)的錯(cuò)誤信息會(huì)在devtools的控制臺(tái)中顯示(你可以在devtool右上角看到紅色的叉號(hào),那就是錯(cuò)誤),然后根據(jù)錯(cuò)誤改正就好。

2.$ is not define:
因?yàn)槲覀冊(cè)讷@得code之后想再獲得userId,所以要通過(guò)$.ajax請(qǐng)求后臺(tái)處理程序,所以調(diào)用了jquery的$.ajax方法,用這個(gè)方法需要
引入jquery庫(kù),手機(jī)版和PC版引入的庫(kù)不一樣,手機(jī)版引入的是zepto.min.js,電腦版需要引入的是jquery-1.4.4.min.js,自己先下好,放到本地,然后導(dǎo)入到相應(yīng)的主頁(yè)。

至此,釘釘免登陸問(wèn)題就基本解決了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
釘釘免登錄
SpiderMonkey Build Documentation - MDC
IE6下PNG背景透明
微信JSSDK說(shuō)明文檔
微信分享
引入JS方式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服