摘要:一開始的思路是先將微信小程序轉(zhuǎn)為釘釘小程序。接下來就是轉(zhuǎn)化階段,關(guān)于微信和釘釘具體可參考其開發(fā)文檔。
最近有個(gè)需求,要將微信小程序轉(zhuǎn)為浙政釘小程序進(jìn)行開發(fā)。一開始的思路是先將微信小程序轉(zhuǎn)為釘釘小程序。(至于為什么,我只能說釘釘?shù)拈_發(fā)文檔寫的要比專有釘釘?shù)脑敱M多了)本是采用插件,想一步到位,但是轉(zhuǎn)化后的產(chǎn)物并不理想。并且釘釘小程序開發(fā)工具,似乎不能很精準(zhǔn)的定位錯(cuò)誤,很容易造成系統(tǒng)崩潰(not found xxxxx),即找不到該頁(yè)面,這一點(diǎn),極大地提升了找bug的難度。因此,決定直接手改。
提一句,在我們修改bug之前,存在兩個(gè)IDE供我們選擇,
其一,是政務(wù)釘釘開發(fā)工具。 【傳送門】
該開發(fā)工具,在編譯速度上不及釘釘,但是離我們的最終需求是最貼近的
其二,是釘釘開發(fā)工具,官網(wǎng)最顯眼的是這個(gè)IDE 但,在開發(fā)中,我們發(fā)現(xiàn),這邊釘釘小程序的樣式跟轉(zhuǎn)到專有釘釘?shù)男〕绦驑邮匠鋈牒艽螅髞恚覀冞x擇組件開發(fā)的這款 IDE 該IDE比起上面編譯要快很多。
這邊我們采用的開發(fā)策略是: 先在第二款I(lǐng)DE中,將微信小程序大致改好,然后在政務(wù)釘釘?shù)拈_發(fā)工具中進(jìn)行功能測(cè)試和微調(diào),當(dāng)然,也可以直接在政務(wù)釘釘?shù)拈_發(fā)工具中進(jìn)行開發(fā)。。 下面進(jìn)入開發(fā)階段:
打開開發(fā)工具,選擇專有釘釘,然后一直下一步就可。
接下來就是轉(zhuǎn)化階段,關(guān)于微信和釘釘 具體可參考其開發(fā)文檔。下文有提及。
釘釘轉(zhuǎn)專有釘釘
這是官方給出的方案 ,其實(shí)不用這么麻煩:
關(guān)于釘釘和專有釘釘,其實(shí)最大區(qū)別就在于 接口調(diào)用, 專有釘釘?shù)腶pi調(diào)用是 my.xxxx
與支付寶幾乎一致,在開發(fā)中可參考 支付寶開發(fā)文檔, 而釘釘?shù)腶pi調(diào)用是 dd.xxxx
。只需安裝一個(gè)依賴 jsapi
即可:
在項(xiàng)目根目錄下執(zhí)行
npm install gdt-jsapi
// 方式一 import dd from "gdt-jsapi"dd.getLocation().then(ret => { console.log(ret)}).catch(err => { console.error(err)})// 方式二,不需要引入,直接使用 my 進(jìn)行調(diào)用my.getLocation({ success (ret) { console.log(ret) }, fail (err) { console.error(err) }})
關(guān)于專有釘釘調(diào)用釘釘接口:
下面列幾個(gè)特殊的寫法
① wxs & sjs
微信 :
<wxs src="/utils/xxxx.wxs" module="filter">wxs>
專有釘釘
<import-sjs from="/utils/xxxx.sjs" name="filter" />
② 自定義導(dǎo)航欄
微信: navigationStyle:custom
采用自定義導(dǎo)航欄
// xxx.json{ "navigationStyle":"custom", "navigationBarTextStyle": "white"}
專有釘釘: transparentTitle
這個(gè)屬性控制導(dǎo)航欄透明度
// app.json "window": { "defaultTitle": "", "titleBarColor": "#ffffff", "pullRefresh": false, "transparentTitle": "always", "titlePenetrate": "YES" }
// xxx.json 想要采用原生導(dǎo)航欄{ "defaultTitle": "我的評(píng)論", "transparentTitle": "no", "pullRefresh": true // 若要實(shí)現(xiàn)下拉刷新,必須開啟這個(gè)屬性}
③ 底部導(dǎo)航欄
微信
"tabBar": { "custom": true}
專有釘釘
暫時(shí)還沒找到解決方案,目前采用的是:在 app.json
直接不寫 tabbar 屬性
④ 存儲(chǔ)獲取
微信
wx.setStorageSync("openid", res.data.user.openid)let openid=wx.getStorageSync("openid")?wx.getStorageSync("openid"):getApp().globalData.openid;
專有釘釘
// ddInfo: {openid:xxxx} dd.setStorageSync({ key: "ddInfo", data: res.data.data });let openid = my.getStorageSync({ key: "ddInfo" }).data ? my.getStorageSync({ key: "ddInfo" }).data.openid : app.globalData.openid;
⑤ 網(wǎng)絡(luò)請(qǐng)求
微信
wx.request({ method: type, dataType: "json", url: getApp().globalData.Url + url, data:param, header: { "content-type": "application/json", }, success: function (res) { callback(res.data); } })
專有釘釘
my.httpRequest({ method: type, url: app.globalData.Url + url, data: param, success: function (res) { callback(res.data); }, fail: function (err) { console.log(err) }})
⑥ 分享 傳參
微信
onShareAppMessage:function (res) { let news_=this.data.news; let title=news_.gj_title; let imgurl=news_.tb_img; let newsId=news_.news_id; let openid=wx.getStorageSync("openid")? wx.getStorageSync("openid"):getApp().globalData.openid; return { title: title, path: "/pages/xxxx/xxxx?id="+newsId+"&oid="+openid, imageUrl: imgurl, success: (res) => { console.log("轉(zhuǎn)發(fā)成功", res); }, fail: (res) => { console.log("轉(zhuǎn)發(fā)失敗", res); } } }
專有釘釘 注意 %3F
是?的url編碼,官網(wǎng)給出的例子,似乎跑不通
onShareAppMessage() { let news_=this.data.news; console.log(news_) let title=news_.gj_title; let imgurl=news_.tb_img; let newsId=news_.news_id; let openid = my.getStorageSync({ key: "ddInfo" }).data ? my.getStorageSync({ key: "ddInfo" }).data.openid : getApp().globalData.openid; return { title: title, path: "pages/xxxx/xxxx%3Fid="+newsId + "&oid=" + openid, imageUrl: imgurl, success: (res) => { console.log("轉(zhuǎn)發(fā)成功", res); }, fail: (err) => { console.log("轉(zhuǎn)發(fā)失敗", err); } }
⑦ 點(diǎn)擊事件、for循環(huán)等
微信
bindchange、bindtap、 bindxxxxxwx:for="{{ xxxxx }}" wx:for-item="item" wx:key="index"
釘釘
onChange、onTap、 onXxxxxa:for="{{xxxxx}}" a:key="index" a:for-index="index"
⑧ 畫布canvas
微信 canvas-id
<canvas class="hide" canvas-id="share" style="width:480px;height:854px;">canvas>
專有釘釘 id
<canvas class="hide" id="share" style="width:480px;height:854px;">canvas>
⑨ 交互showToast等
關(guān)于 政務(wù)釘釘調(diào)試,需設(shè)置白名單,才能進(jìn)行真機(jī)調(diào)試、預(yù)覽等
點(diǎn)擊詳情
進(jìn)行應(yīng)用發(fā)布, 還需管理員在工作臺(tái)管理頁(yè)面,將其審核添加。
另有一個(gè)巨坑, 還得在控制臺(tái)上設(shè)置一下
不然發(fā)布了,在工作臺(tái)也找不到該應(yīng)用。
關(guān)于專有釘釘小程序的官方開發(fā)文檔,著實(shí)有點(diǎn)亂。
這篇記錄暫且到這里,后續(xù)再補(bǔ)充。
【轉(zhuǎn)載請(qǐng)放鏈接】https://blog.csdn.net/weixin_45530599/article/details/121303475
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/123263.html
摘要:如果你對(duì)微應(yīng)用感興趣,也在開發(fā)著微信小程序,不妨來看看為了讓你減少顧慮而準(zhǔn)備的技術(shù)對(duì)比表格,是的,開發(fā)釘釘?shù)奈?yīng)用是如此的簡(jiǎn)單。訪問這個(gè)鏈接閱讀釘釘微應(yīng)用與微信小程序技術(shù)對(duì)比表格。與內(nèi)存管理由于運(yùn)行在中,此與有較大差異。 在自己的業(yè)務(wù)環(huán)境中使用,并開放給第三方isv,企業(yè)開發(fā)者使用,這是一篇有內(nèi)涵有故事的文章。 如果你對(duì)weex微應(yīng)用感興趣,也在開發(fā)著微信小程序,不妨來看看為了讓你減少...
摘要:?jiǎn)栴},你可以在中文討論板塊提交問題,地址。文字展現(xiàn)必須使用標(biāo)簽關(guān)于端的點(diǎn)透事件需要在上層視圖上加上,如果上層視圖有事件,多加一個(gè)中間層,把加在空事件視圖上關(guān)于事件注意僅支持和,暫不支持。事件會(huì)在頁(yè)面就要關(guān)閉時(shí)被觸發(fā)。 好吧,我知道你來看這個(gè)文章,一定是遇到坑了,所以,把這幾個(gè)放在最開始吧 現(xiàn)在,如果你的團(tuán)隊(duì)的技術(shù)棧是react,請(qǐng)嘗試這個(gè)吧,跟react很像,如果你的團(tuán)隊(duì)一直使用rea...
閱讀 3623·2021-11-24 09:39
閱讀 2557·2021-11-15 11:37
閱讀 2216·2021-11-11 16:55
閱讀 5205·2021-10-14 09:43
閱讀 3711·2021-10-08 10:05
閱讀 3012·2021-09-13 10:26
閱讀 2333·2021-09-08 09:35
閱讀 3541·2019-08-30 15:55