知è˜
ä¸ç®¡æ˜¯ç¶²(wÇŽng)站,軟件還是å°ç¨‹åºï¼Œéƒ½è¦ç›´æŽ¥æˆ–間接能為您產(chÇŽn)生價值,我們在追求其視覺表ç¾(xià n)çš„åŒæ™‚,更å´(cè)é‡äºŽåŠŸèƒ½çš„ä¾¿æ·ï¼Œç‡ŸéŠ·çš„ä¾¿åˆ©ï¼Œé‹ç‡Ÿçš„高效,讓網(wÇŽng)ç«™æˆç‚ºç‡ŸéŠ·å·¥å…·ï¼Œè®“è»Ÿä»¶èƒ½åˆ‡å¯¦æå‡ä¼æ¥(yè)å…§(nèi)éƒ¨ç®¡ç†æ°´å¹³å’Œæ•ˆçŽ‡ã€‚å„ª(yÅu)秀的程åºç‚ºåŽæœŸå‡ç´šæä¾›ä¾¿æ·çš„æ”¯æŒï¼
您當å‰ä½ç½®>é¦–é » æ–°èžè³‡è¨Š » å°ç¨‹åºç›¸é—œ(guÄn) >
微信å°ç¨‹åºå®Œæˆåˆ†äº«å¥½å‹åŠè‡ªå®šç¾©åˆ†äº«æœ‹å‹åœˆåŠŸèƒ½ï¼ˆå®Œæ•´ç‰ˆï¼‰ ... ... ...
發(fÄ)表時間:2021-1-5
發(fÄ)布人:葵宇科技
ç€è¦½æ¬¡æ•¸(shù):277
å‰è¨€
以下代碼使用了: vant-ui庫;
主è¦å®Œæˆäº†ï¼š
- 上拉框顯示分享朋å‹åœˆæŒ‰éˆ•,點擊分享朋å‹åœˆåŽï¼Œå½ˆæ¡†å±•示圖片,點擊圖片ä¿å˜åˆ°æœ¬åœ°ï¼›
- ä¸Šæ‹‰æ¡†é¡¯ç¤ºåˆ†äº«å¥½å‹æŒ‰éˆ•,分享當å‰é çš„å°ç¨‹åºçµ¦å¥½å‹ï¼›
微信å°ç¨‹åºåˆ†äº«å¥½å‹åŠåˆ†äº«æœ‹å‹åœˆåŠŸèƒ½ï¼ŒåŠŸèƒ½å¾ˆå¸¸è¦‹ï¼Œè¨˜éŒ„ä¸‹ï¼Œæ–¹ä¾¿ä»ŠåŽæŸ¥é–±
一ã€ä¸Šæ‹‰æ¡†é¡¯ç¤ºåˆ†äº«æŒ‰éˆ•
1.1 wxml
<van-action-sheet bind:close="shareClose" bind:cancel="shareClose" cancel-text="å–æ¶ˆ" title="分享é é¢"
show="{{ showShare }}">
<view class="shareBox">
<button open-type="share">
<van-icon name="friends" size="30" color="#07c160" />
<view>
微信好å‹
view>
button>
<button bind:tap="shareToPoster">
<van-icon name="photo" size="30" color="#c79f5d" />
<view>
朋å‹åœˆ
view>
button>
view>
van-action-sheet>
1.2 js部分
Page({
data: {
showShare: false,
},
shareClose() {
this.setData({ showShare: false })
},
})
1.3 事件代碼解æž
- 上拉彈框的控制為:showShare;
- 上拉彈框關(guÄn)閉事件:shareCloseï¼›
二ã€å½ˆæ¡†å±•示ç²å–的圖片,點擊圖片ä¿å˜åˆ°æœ¬åœ°ï¼›
2.1 wxml
<van-dialog closeOnClickOverlay use-slot bind:confirm="saveImage" theme="round-button" confirmButtonText="ä¿å˜åœ–片到相冊"
show="{{ isShowShareDialog }}">
<image wx:if="{{qrCodePath !== ''}}" src="{{qrCodePath}}" mode="widthFix" />
<van-image wx:else show-error> van-image>
van-dialog>
2.2 js部分
import Toast from '../../compontents/vant/toast/toast'
Page({
data: {
showShare: false,
isShowShareDialog: false,
qrCodePath: '',
},
/**
* 生命周期函數(shù)--監(jiÄn)è½é é¢åŠ è¼‰ï¼Œå¿…é ˆ
*/
onLoad: function (options) {
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})
},
// 分享朋å‹åœˆ
shareToPoster() {
let that = this
Toast.loading({
message: 'åŠ è¼‰ä¸...',
forbidClick: true,
});
// 1.先請求åŽè‡º
wx.request({
url: 'test.php', //僅為示例,并éžçœŸå¯¦çš„æŽ¥å£åœ°å€
data: { x: '',y: '' },
header: {'content-type': 'application/json'},
success (res) {
console.log(res.data.href)
//例:res.data.
// 2.從åŽè‡ºæ‹¿åˆ°åœ–片,轉(zhuÇŽn)æ›ç‚ºæœ¬åœ°åœ–片
wx.getImageInfo({
src: res.data.href,//æœå‹™(wù)器返回的圖片地å€
success: function (res) {
Toast.clear()
const qrCodePath = res.path
that.setData({ qrCodePath: qrCodePath, isShowShareDialog: true });
},
fail: function (res) { Toast('生æˆåœ–片失敗') }
});
},
fail: function (res) {Toast('請求失敗')}
})
},
saveImage() {
// 3.ä¿å˜åœ–片
Toast.loading({
message: 'ä¿å˜ä¸...',
forbidClick: true,
});
wx.saveImageToPhotosAlbum({
filePath: this.data.qrCodePath,
success: function (res) {
Toast.clear()
Toast('ä¿å˜åœ–片æˆåŠŸï¼Œå¯ä»¥åŽ»æœ‹å‹åœˆåˆ†äº«')
},
fail: function (res) {
Toast('ä¿å˜åœ–片失敗')
}
})
},
shareClick(event) {
this.setData({ showShare: true })
},
shareClose() {
this.setData({ showShare: false })
},
})
2.3 代碼事件分æž
- 在
onLoad
或者onShow
ä¸èª¿(dià o)用wx.showShareMenu
ï¼ˆå¿…é ˆï¼‰ï¼Œé€™å€‹api也å¯ä»¥æŽ§åˆ¶è† 囊按鈕ä¸çš„轉(zhuÇŽn)阿發(fÄ)和分享功能;- 分享給好å‹ï¼š
shareAppMessage
- 分享朋å‹åœˆï¼š
shareTimeline
- 分享給好å‹ï¼š
- 彈框展示:
isShowShareDialog
- 彈框顯示åŽï¼Œç™¼(fÄ)請求åŽåŽè‡ºç”Ÿæˆåœ–片展示:
shareToPoster
,涉åŠåˆ°çš„å°ç¨‹åºAPI- 請求åŽè‡ºï¼Œç²å–åˆ°åœ–ç‰‡éˆæŽ¥ï¼š
wx:request
; - å°‡åœ–ç‰‡éˆæŽ¥è½‰(zhuÇŽn)æˆæœ¬åœ°å¯å±•示的圖片形å¼ï¼š
wx.getImageInfo
;
- 請求åŽè‡ºï¼Œç²å–åˆ°åœ–ç‰‡éˆæŽ¥ï¼š
- 點擊按鈕ä¿å˜åœ–片至本地:
saveImage
ï¼›- å‚³å…¥åœ–ç‰‡éˆæŽ¥ï¼Œèª¿(dià o)用API:
wx.saveImageToPhotosAlbum
ï¼›
- å‚³å…¥åœ–ç‰‡éˆæŽ¥ï¼Œèª¿(dià o)用API:
Toast.clear()
ï¼šæ˜¯ç‚ºäº†åˆªé™¤å¾®ä¿¡è‡ªå¸¶çš„æ¶ˆæ¯æç¤ºï¼Œè€Œç”¨uiåº«å¥½çœ‹çš„æ¶ˆæ¯æç¤ºï¼›
三ã€åˆ†äº«ç•¶å‰é çš„å°ç¨‹åºçµ¦å¥½å‹ï¼›
3.1wxml 部分åŒ1.1;
<button open-type="share">
<van-icon name="friends" size="30" color="#07c160" />
<view> å¾®ä¿¡å¥½å‹ view>
button>
- 分享好å‹ä¸»è¦åœ¨æŒ‰éˆ•
button
ï¼ˆå¿…é ˆæ˜¯æŒ‰éˆ•ï¼Œåˆ¥çš„domä¸è¡Œï¼‰ä¸Šé…置按鈕:open-type="share"
ï¼›
3.2 js部分
Page({
onLoad: function (options) {
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})
},
})
- 在
onLoad
或者onShow
ä¸èª¿(dià o)用wx.showShareMenu
ï¼ˆå¿…é ˆï¼‰ï¼Œé€™å€‹api也å¯ä»¥æŽ§åˆ¶è† 囊按鈕ä¸çš„轉(zhuÇŽn)阿發(fÄ)和分享功能;
å››ã€dome全部代碼
4.1 wxml
<view class="policy-footer">
<view class="item">
<button class="shareBtn" bind:tap="shareClick">
<van-icon name="share" size="16" />
分享
button>
view>
<van-action-sheet bind:close="shareClose" bind:cancel="shareClose" cancel-text="å–æ¶ˆ" title="分享é é¢"
show="{{ showShare }}">
<view class="shareBox">
<button open-type="share">
<van-icon name="friends" size="30" color="#07c160" />
<view>
微信好å‹
view>
button>
<button bind:tap="shareToPoster">
<van-icon name="photo" size="30" color="#c79f5d" />
<view>
朋å‹åœˆ
view>
button>
view>
van-action-sheet>
<van-dialog closeOnClickOverlay use-slot bind:confirm="saveImage" theme="round-button" confirmButtonText="ä¿å˜åœ–片到相冊"
show="{{ isShowShareDialog }}">
<image wx:if="{{qrCodePath !== ''}}" src="{{qrCodePath}}" mode="widthFix" />
<van-image wx:else show-error> van-image>
van-dialog>
view>
<van-toast id="van-toast" />
4.2 json
const app = getApp()
import Toast from '../../compontents/vant/toast/toast'
Page({
data: {
showShare: false,
isShowShareDialog: false,
qrCodePath: '',
},
// 分享朋å‹åœˆ
shareToPoster() {
let that = this
// 1.先請求
// 2.從åŽè‡ºæ‹¿åˆ°åœ–片
Toast.loading({
message: 'åŠ è¼‰ä¸...',
forbidClick: true,
});
wx.getImageInfo({
src: 'https://img-blog.csdnimg.cn/20190124095040684.jpg',//æœå‹™(wù)器返回的圖片地å€
success: function (res) {
Toast.clear()
console.log(res)
const qrCodePath = res.path
that.setData({ qrCodePath: qrCodePath, isShowShareDialog: true });
},
fail: function (res) {
Toast('生æˆåœ–片失敗')
}
});
},
saveImage() {
// 3.ä¿å˜åœ–片
Toast.loading({
message: 'ä¿å˜ä¸...',
forbidClick: true,
});
wx.saveImageToPhotosAlbum({
filePath: this.data.qrCodePath,
success: function (res) {
Toast.clear()
Toast('ä¿å˜åœ–片æˆåŠŸï¼Œå¯ä»¥åŽ»æœ‹å‹åœˆåˆ†äº«')
},
fail: function (res) {
Toast('ä¿å˜åœ–片失敗')
}
})
},
shareClick(event) {
this.setData({ showShare: true })
},
shareClose() {
this.setData({ showShare: false })
},
/**
* 生命周期函數(shù)--監(jiÄn)è½é é¢åŠ è¼‰
*/
onLoad: function (options) {
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})
},
})
4.3 json
{
"usingComponents": {
"van-icon": "../../compontents/vant/icon",
"van-button": "../../compontents/vant/button",
"van-toast": "../../compontents/vant/toast",
"van-dialog": "../../compontents/vant/dialog",
"van-image": "../../compontents/vant/image",
"van-action-sheet": "../../compontents/vant/action-sheet"
},
}
çµ(jié)語
以上就完æˆäº†å°ç¨‹åºï¼šå¾®ä¿¡å°ç¨‹åºåˆ†äº«å¥½å‹åŠåˆ†äº«æœ‹å‹åœˆåŠŸèƒ½ï¼›ä¸Šè¿°ä»£ç¢¼ä¸ä½¿ç”¨äº†ui庫來輔助完æˆï¼Œä»£ç¢¼æ›´ç°¡æ½”,但如果沒有使用其他ui庫,æ€è·¯ä¹Ÿæ˜¯ç›¸åŒçš„:
- 點擊分享朋å‹åœˆæŒ‰éˆ•,彈框顯示圖片;
- 點擊下載按鈕,調(dià o)用下載api,下載至本地;
- é»žæ“Šåˆ†äº«å¥½å‹æŒ‰éˆ•,é…ç½®wx.showShareMenu,然åŽå†button上é…ç½®open-type="share"å³å¯ï¼›
相關(guÄn)案例查看更多
相關(guÄn)閱讀
- å°ç¨‹åºå…¬å¸
- 昆明網(wÇŽng)ç«™è¨(shè)計
- painter
- 昆明網(wǎng)站制作
- 手機網(wÇŽng)站建è¨(shè)
- 昆明軟件公å¸
- 昆明網(wÇŽng)站建è¨(shè)å…¬å¸
- 分銷系統(tǒng)
- ç¶²(wÇŽng)站建è¨(shè)方法
- æ—¥æ·çµ„ä»¶
- 百度å°ç¨‹åºé–‹ç™¼(fÄ)å…¬å¸
- 云å—å°ç¨‹åºé–‹ç™¼(fÄ)å ±åƒ¹
- 云å—ç¶²(wÇŽng)站建è¨(shè)æœå‹™(wù)
- 昆明å°ç¨‹åºå“ªå®¶å¥½
- æ±½è»Šå ±å»¢å›žæ”¶ç®¡ç†ç³»çµ±(tÇ’ng)
- 百度自然排å
- 微信分銷系統(tǒng)
- 開通微信å°ç¨‹åºè¢«é¨™
- 楚雄å°ç¨‹åºé–‹ç™¼(fÄ)
- ç¶²(wÇŽng)站排å
- ç¶²(wÇŽng)站建è¨(shè)案例
- 微信分銷
- æ£è¦(guÄ«)ç¶²(wÇŽng)站建è¨(shè)å…¬å¸
- 云å—科技公å¸
- 昆明å°ç¨‹åºä»£å»º
- æœç´¢æŽ’å
- ç”Ÿæˆæµ·å ±
- å ±å»¢è»Šå›žæ”¶ç®¡ç†è»Ÿä»¶
- ç¶²(wÇŽng)站建è¨(shè)電話
- 百度推廣