taro2.x開發(fā)支付寶小程序踩坑總結(jié)(持續(xù)更新~)

api篇

  1. showActionSheet的success 返回參數(shù)在微信為tapIndex蒲祈,支付寶為index,可做兼容處理:
let tapIndex = res && (res.tapIndex || res.index);
  1. showModal在不傳cancelText時碍侦,支付寶的取消按鈕會顯示undefined,因此每次使用帶取消按鈕的模態(tài)彈窗時,都應(yīng)該傳cancelText。
    補充:showModal的另外一個坑:success回調(diào)里鹃祖,按確認(rèn)按鈕的話,res.confirm為true;按取消則res.confirm為false普舆。不會有res.cancelL窨凇!奔害!
  2. requestPayment不兼容支付寶楷兽,支付寶支付用my.tradePay地熄,同時需要注意:支付寶用戶取消支付時华临,是進success回調(diào)!6丝肌雅潭!可以通過res.resultCode得知用戶取消了支付:
// 用戶取消了支付
if (res.resultCode === '6001')
  1. login不兼容支付寶,支付寶登錄用my.getAuthCode却特,詳見支付寶小程序文檔扶供。
  2. 支付寶授權(quán),獲取手機號之類的也是跟微信不同的裂明,詳見支付寶小程序文檔椿浓。
  3. createSelectorQuery在支付寶里需要在in()方法里傳上下文:
// weapp
Taro.createSelectorQuery()
// alipay
Taro.createSelectorQuery().in(this.$scope)

樣式篇

  1. 組件樣式中的externalClasses對支付寶無效,如:custom-class,筆者的解決方案是:開啟addGlobalClass扳碍,但是這樣存在外部樣式無意間污染組件樣式的風(fēng)險提岔,現(xiàn)實情況也確實發(fā)生了。我的reset.scss覆蓋了所有的組件樣式:
// reset.scss
view,
text {
    font-size: 28px;
    font-weight: 500;
    line-height: 1;
}
// demo.js
render() {
    return (
        <View className='demo'>
            <Text className='demo__text'>demo</Text>
        </View>
    )
}
// demo.scss
.demo__text {
    line-height: 1.5;
}

這種情況在支付寶生效的樣式是line-height: 1而不是line-height: 1.5笋敞,這就是全局樣式污染了碱蒙,我的解決方案是:增加css權(quán)重

// demo.js
render() {
    return (
        <View className='demo'>
            <Text className='demo__text weighted1'>demo</Text>
        </View>
    )
}
// demo.scss
.demo__text.weighted1 {
    line-height: 1.5;
}

這樣,line-height: 1.5就生效了夯巷。

  1. 外部自定義樣式給組件使用赛惩,我們可以傳className作為props給組件,當(dāng)然addGlobalClass是要開啟的:(注意:addGlobalClass 這個 API 只對 Page 上的 class 起作用趁餐。)
// 組件Comp
import classNames from 'classnames'

render() {
    return (
        <View className={classNames('comp', this.props.className)}>
            hello world
        </View>
    )
}
// 頁面
render() {
    return <Comp className='hello' />
}
/* 頁面.scss */
.hello.comp {
    color: red;
}
  1. 按鈕默認(rèn)樣式支付寶與微信不同喷兼,為了與微信統(tǒng)一,需要添加:
.my-button {
    margin-left: auto;
    margin-right: auto;
    border-radius: 10px;
    padding-left: 28px;
    padding-right: 28px;
    line-height: 2.55555556;
    border: 0;
}
  1. z-index負值在支付寶上表現(xiàn)不佳后雷,通常褒搔,我們會把背景div設(shè)置z-index為負值來防止覆蓋主內(nèi)容,然而在支付寶中背景div直接就看不到了喷面,汗-_-||星瘾。目前我的解決方案是:主內(nèi)容div設(shè)置z-index值(任意值),背景div不設(shè)置z-index來解決惧辈。

組件篇

  1. label 官方原話


    label.png

    所以還想用label綁定button的同學(xué)可以洗洗睡了琳状,改回button布局吧。

  2. navigator 支付寶navigator不能綁定點擊事件盒齿,所以改用view念逞,至于想要有hoverClass的效果,可以參考以下代碼:
<View hoverClass='navigator-hover-class'>click me</View>
.navigator-hover-class {
    background: #EDEDED;
}
  1. button 如果自己項目的按鈕沒有點擊態(tài)的話边翁,記得設(shè)置hoverClass='none'翎承,否則在支付寶點擊按鈕時可能巨丑無比。

額外注意

使用分包需要注意符匾,小程序無問題叨咖,到了支付寶就無法跳轉(zhuǎn)分包路徑了,真是巨坑啊胶!
目前我的解決方案是定制不同的app.json(即支付寶不使用分包)甸各,定制不同app.json參考Taro文檔(2.x關(guān)于分包的似乎找不到了),但是沒有關(guān)西焰坪,下面上示例代碼:

// app.js
class App extends Component {
    config = {
        pages: preval`
            module.exports=(function() {
              if (process.env.TARO_ENV === 'weapp') {
                return [
                    'pages/index/index'
                ]
              }
                return [
                  'pages/index/index',
                  'pages/my/index',
                ]
            })()
          `,
          subpackages: preval`
            module.exports=(function() {
              if (process.env.TARO_ENV === 'weapp') {
                return [
                {
                    root: 'pages/my',
                    pages: [
                        'index'
                    ]
                }
            ]
              }
              return []
            })()
          `
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趣倾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子某饰,更是在濱河造成了極大的恐慌儒恋,老刑警劉巖善绎,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诫尽,居然都是意外死亡涂邀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門箱锐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來比勉,“玉大人,你說我怎么就攤上這事驹止『屏” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵臊恋,是天一觀的道長衣洁。 經(jīng)常有香客問我,道長抖仅,這世上最難降的妖魔是什么坊夫? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮撤卢,結(jié)果婚禮上环凿,老公的妹妹穿的比我還像新娘。我一直安慰自己放吩,他們只是感情好智听,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渡紫,像睡著了一般到推。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惕澎,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天莉测,我揣著相機與錄音,去河邊找鬼唧喉。 笑死捣卤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欣喧。 我是一名探鬼主播腌零,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼梯找,長吁一口氣:“原來是場噩夢啊……” “哼唆阿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锈锤,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤驯鳖,失蹤者是張志新(化名)和其女友劉穎闲询,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅辙,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扭弧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了记舆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸽捻。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泽腮,靈堂內(nèi)的尸體忽然破棺而出御蒲,到底是詐尸還是另有隱情,我是刑警寧澤诊赊,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布厚满,位于F島的核電站,受9級特大地震影響碧磅,放射性物質(zhì)發(fā)生泄漏碘箍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一鲸郊、第九天 我趴在偏房一處隱蔽的房頂上張望丰榴。 院中可真熱鬧,春花似錦秆撮、人聲如沸多艇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峻黍。三九已至,卻和暖如春拨匆,著一層夾襖步出監(jiān)牢的瞬間姆涩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工惭每, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骨饿,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓台腥,卻偏偏與公主長得像宏赘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子黎侈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級和職位的變化察署,入門級到專家級,廣度和深度都會有所增加峻汉。 題目類型: 理論知...
    怡寶丶閱讀 2,569評論 0 7
  • 選擇qi:是表達式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color贴汪,font脐往,text-align,li...
    love2013閱讀 2,303評論 0 11
  • 兼容性:環(huán)境:ios 端扳埂,微信打開H5頁面問題描述:在登錄頁面业簿,有輸入手機號,以及輸入驗證碼input框兩個阳懂,點擊...
    webmrxu閱讀 229評論 0 0
  • 編程語言的種類和發(fā)展: 機器語言:機器指令梅尤,直接執(zhí)行 匯編語言:符號化 高級程序設(shè)計語言(編譯型) 高級程序設(shè)計語...
    welun閱讀 1,399評論 0 2
  • top 10的算法:我們只需要維護一個10個大小的數(shù)組,初始化放入10Query岩调,按照每個Query的統(tǒng)計次數(shù)由大...
    SeanC52111閱讀 312評論 0 0