嘿嘿,借用官方爸爸的微應用開發思路圖,真的很一目瞭然,從五個鑑權信息開始都是前端的操做了哦。html
第一步,這個地方若是當作通常的數據請求來看,沒有什麼要說的,用jquery或者zepto的ajax請求均可以很快速實現。就說一下我在這個踩的坑,我在使用ajax異步請求的時候,忽略了異步加載然而同步加載不中止的問題。深刻這個話題我也還須要去學去實踐,因此只是簡單說明個人問題,後面會提供連接去深刻學習。下面的代碼,因爲我沒實現手機電腦聯調,因此只能退而其次用alert測試,見諒。js在加載的時候,會先所有同步順序加載,可是ajax請求不會影響同步加載,於是,會按照123的alert彈出,而非順序彈出312。因爲的我淺薄理解,致使我後面還沒拿到ajax請求到的_config,就開始執行函數DDConfig(_config)配置釘釘,因此一直不彈出任何彈窗。這個問題我開始解決的方案是將這段ajax單獨放在一個script標籤裏面,最早引入,而後再配置釘釘鑑權信息,這個在Android上測試時正常的,然而只是僥倖,iOS不買這個帳。因此使用ajax的complete函數,在這裏面執行DDConfig(_config),可看源代碼。前端
var _config = null; // 定義全局變量_config,初始值爲null,用來接收API獲取到的簽名信息 var getConfig = $.ajax({ type: 'POST', url: '獲取企業簽名的API,後臺提供', data: { agentId: 109243825, url: '這是你開發微應用頁面的線上地址,通常是由釘釘管理員配置的。', }, dataType: 'json', success: function(data){ console.log('---success-post-dingInfo---'); if(data.status){ _config = data.data; alert('3. API獲取簽名信息:'+JSON.stringify(_config)); // 開始配置釘釘 DDConfig(_config); }else{ alert('請求信息出錯'); } }, error: function(data){ console.log(---error-post-dingInfo---); } }); alert('1. API請求開始:'+JSON.stringify(getConfig)); alert('2. 全局輸出_config:'+JSON.stringify(_config));
第二步,這裏官方給出很詳細的步驟釘釘移動jsapi開發,你須要使用的api放進dd.config的jsApiList裏面便可。其實釘釘的jsapi思路是這樣的。引入dingtalk.js(官方文檔有提供)這個js會給你提供一個全局變量dd,你能夠在Chrome的控制檯打印出來看看是個什麼東西,裏面能夠識別釘釘版本,手機系統,以及提供一個個api。釘釘移動jsapi裏面介紹全部的api,分爲無需鑑權api和須要鑑權api,無需鑑權api能夠再引入dingtalk.js以後全局使用;鑑權api就須要走後端接口以保證安全性,且鑑權經過纔可使用這部分api。思路就是這樣。jquery
問題2:若是你發現dd.error被執行了,先恭喜你一下,至少你進入釘釘的api了,哈哈哈哈哈哈哈哈。。。git
——好記性不如難筆頭。github