🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
1、支付寶不支援v-show
改為v-if。
2、v-html
App端和H5端支援 v-html ,微信小程式會被轉為 rich-text,其他端不支援 v-html。
解決方法:去外掛市場找一個支援跨端的富文字元件。
3、導航欄處有背景色延伸至導航欄外
相容微信小程式和支付寶小程式
pages.json:給支付寶的導航欄設定透明
{ "path": "pages/agent/agent", "style": { "navigationStyle": "custom", "enablePullDownRefresh": false, "mp-alipay": { "transparentTitle": "always", "titlePenetrate": "YES" } } }
agent頁面:
支付寶加上my.setNavigationBar設定標題文字即可,微信需要自定義導航欄
html:
<template> <view style="height: 100vh;position: relative;"> <view class="bj"></view> <view class="status_bar"></view> <!-- #ifndef MP-ALIPAY --> <view class="back" @click="back" :style="{ top: menuButton.top + 'px', height: menuButton.height + 'px' }"> <view class="text1"></view> 代理中心 </view> <!-- #endif --> </template>
js:
<script> export default { data() { return { menuButton: {} } }, onLoad() { // #ifdef MP-WEIXIN this.menuButton = uni.getMenuButtonBoundingClientRect() // #endif // #ifdef MP-ALIPAY my.setNavigationBar({ title: '代理中心' }) // #endif }, methods: { back() { uni.navigateBack({ delta: 1, }) }, } } </script>
css:
.bj { background: linear-gradient(180deg, #ffbdbd, #ff8f8f); height: 460rpx; width: 100%; position: absolute; } .status_bar { height: var(--status-bar-height); width: 100%; } .back { position: fixed; z-index: 99; display: flex; align-items: center; color: #292929; } .text1 { margin-right: 14rpx; margin-left: 32rpx; width: 16rpx; height: 16rpx; border-left: 2px solid #292929; border-top: 2px solid #292929; transform: rotate(-45deg); }
參考:小程式文件 - 支付寶文件中心
4、獲取節點資訊,支付寶不相容uni.createSelectorQuery().in中的in
//#ifdef MP-WEIXIN uni.createSelectorQuery().in(this).selectAll('.content_box').boundingClientRect(res => { this.nodeData = res }).exec(); //#endif //#ifdef MP-ALIPAY my.createSelectorQuery().selectAll('.content_box').boundingClientRect().exec(res => { this.nodeData = res[0] }) //#endif
5、客服
open-type="contact" 僅支援:微信小程式、百度小程式、快手小程式、抖音小程式
<!-- #ifdef MP-WEIXIN --> <button open-type="contact"></button> <!-- #endif -->
支付寶接入客服:
首先在支付寶開放平臺開通螞蟻智慧客服:支付寶開放平臺-->控制檯-->小程式資訊-->線上客服
開通後點選小程式的右上角三個點就有客服功能了
如果想點選某個按鈕時進入客服頁面:
<contact-button tnt-inst-id="企業編碼" scene="聊天窗編碼" size="諮詢按鈕大小" color="諮詢按鈕顏色" icon="諮詢按鈕圖片url,例如:https://xxx/service.png" />
tips: 企業編碼、聊天窗編碼在:
tips: contact-button本身無法修改樣式,若想達到自己想要的效果如:
方法:父元素設定相對定位 + overflow: hidden超出隱藏,子元素裡迴圈很多個contact-button出來,絕對定位,並使用opacity:0隱藏,程式碼:
<view style="position: relative;width: 100%;overflow: hidden;display: flex;"> <view>官方客服</view> <view class="iconfont iconfanhui1"></view> <view class="alipyContact" style="opacity:0; position: absolute;"> <contact-button size="40rpx" v-for="(item,index) in 15" :key="index" /> </view> </view>
參考:小程式文件 - 支付寶文件中心
6、position: fixed在支付寶小程式會被彈出的鍵盤頂上去
如下圖: “同意《服務和隱私協議》”被彈起的鍵盤帶上來了
7、uniapp小程式超出限制:Error: 分包大小超過限制,main package source size 4199KB exceed max limit 2MB
改了幾行程式碼上傳時發現超過限制,解決方法:
https://www.cnblogs.com/Denny_Yang/p/16769455.html
8、uniapp 使用 require 絕對路徑引入檔案時,報錯“檔案查詢失敗”
我在 main.js 中使用絕對路徑引入:
// 引入請求封裝,將app引數傳遞到配置中 require('/config/request.js')(app)
出現:
原因:
參考:js 檔案引入 | uni-app官網
解決方案:使用相對路徑即可
// 以下兩種方式都可以 require('config/request.js')(app) require('./config/request.js')(app)
9、頁面跳轉時,絕對路徑和相對路徑的區別
以`uni.navigateTo`舉例:
uni.navigateTo({ url: 'pagesB/pages/publishQues' }) uni.navigateTo({ url: '/pagesB/pages/publishQues' })
`uni.navigateTo` 的 `url` 引數支援相對路徑和絕對路徑兩種方式。 相對路徑是相對於當前頁面的位置進行計算,而絕對路徑是從根目錄開始計算 - `uni.navigateTo({ url: 'pagesB/pages/publishQues' })` 使用的是相對路徑。 如果當前頁面路徑是 `pagesB/pages/index`,那麼相對路徑 `pagesB/pages/publishQues` 會拼接在當前頁面路徑的基礎上, 得到最終跳轉路徑為 `pagesB/pages/pagesB/pages/publishQues`。 - `uni.navigateTo({ url: '/pagesB/pages/publishQues' })` 使用的是絕對路徑。 無論當前頁面路徑是什麼,絕對路徑 `/pagesB/pages/publishQues` 都是從根目錄開始計算, 因此最終的跳轉路徑是 `pagesB/pages/publishQues`。
10、報錯SyntaxError: Unexpected token } in JSON at position 264
報錯:
Module build failed (from ./node_modules/@dcloudio/webpack-uni-pages-loader/lib/index.js):
08:58:30.510 SyntaxError: Unexpected token } in JSON at position 264
08:58:30.513 at JSON.parse (<anonymous>)
在小程式編譯時,有些會報上述錯誤,有些不會,很難察覺這個錯誤,錯誤程式碼示例:
{ "path": "pages/index/index", "style": { "navigationBarTitleText": "標題", "enablePullDownRefresh": false, "navigationStyle": "custom", // #ifdef MP-TOUTIAO "navigationStyle": "default" // #endif } },
原因:在JSON中,物件的最後一個元素後面不應該有逗號。
例如,{"key1": "value1", "key2": "value2",}
這樣的寫法是錯誤的。 假設在微信小程式中執行上述程式碼,就是多了一個逗號
改正:
{ "path": "pages/index/index", "style": { "navigationBarTitleText": "標題", "navigationStyle": "custom", // #ifdef MP-TOUTIAO "navigationStyle": "default", // #endif "enablePullDownRefresh": false } },
本文轉載於:https://blog.csdn.net/m0_59962820/article/details/131835746
如果對您有所幫助,歡迎您點個關注,我會定時更新技術文件,大家一起討論學習,一起進步。