123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- export default function(shareInfo) {
- const num = 4
- const iconSize = 68
- const cancelHeight = 88
- const itemSize = 750 / num
- const px = plus.screen.resolutionWidth / 750
- const height = plus.screen.resolutionHeight
- const rpx = num => px * num + 'px'
- uni._MASK = new plus.nativeObj.View("MASK", { top: '0px', left: '0px', height: '100%', width: '100%', backgroundColor: 'rgba(0,0,0,0.3)'})
- uni._SHARE = new plus.nativeObj.View("SHARE", { bottom: '0px', left: '0px', height: rpx(285.5), width: '100%', backgroundColor: '#FFFFFF' })
- uni._MASK.addEventListener("click", e => {
- uni._MASK.hide()
- uni._SHARE.hide()
- })
- uni._SHARE.draw([
- {
- tag:'font',
- id:'SHARECANLEL',
- text: '取消',
- textStyles:{ size: rpx(32), align: 'center', verticalAlign: 'center' },
- position:{ bottom: '0px', left: '0px', width: '100%', height: rpx(cancelHeight) },
- },
- {
- tag:'rect',
- id:'SHARECANLELLINE',
- rectStyles:{ color: '#B2B2B2' },
- position:{ bottom: rpx(cancelHeight), left: '0px', width: '100%', height: '1px' },
- },
- {
- tag: 'img',
- id: 'sharewx',
- src: '/static/icon/sharewx.png',
- position: {
- left: rpx((itemSize - iconSize) / 2),
- width: rpx(iconSize),
- height: rpx(iconSize),
- bottom: rpx(cancelHeight + 88)
- }
- },
- {
- tag: 'img',
- id: 'sharepyq',
- src: '/static/icon/sharepyq.png',
- position: {
- left: rpx((itemSize - iconSize) / 2 + itemSize),
- width: rpx(iconSize),
- height: rpx(iconSize),
- bottom: rpx(cancelHeight + 88)
- }
- },
- {
- tag: 'img',
- id: 'sharemore',
- src: '/static/icon/sharemore.png',
- position: {
- left: rpx((itemSize - iconSize) / 2 + itemSize * 2),
- width: rpx(iconSize),
- height: rpx(iconSize),
- bottom: rpx(cancelHeight + 88)
- }
- },
- {
- tag: 'font',
- id: 'sharewxtext',
- text: '分享好友',
- textStyles:{ size: rpx(28), align: 'center', verticalAlign: 'center' },
- position:{ bottom: rpx(cancelHeight), left: '0px', width: rpx(itemSize), height: rpx(88) },
- },
- {
- tag: 'font',
- id: 'sharepyqtext',
- text: '分享朋友圈',
- textStyles:{ size: rpx(28), align: 'center', verticalAlign: 'center' },
- position:{ bottom: rpx(cancelHeight), left: rpx(itemSize), width: rpx(itemSize), height: rpx(88) },
- },
- {
- tag: 'font',
- id: 'sharemoretext',
- text: '更多',
- textStyles:{ size: rpx(28), align: 'center', verticalAlign: 'center' },
- position:{ bottom: rpx(cancelHeight), left: rpx(itemSize * 2), width: rpx(itemSize), height: rpx(88) },
- }
- ])
- uni._SHARE.addEventListener("click", e => {
- if (e.screenY > height - cancelHeight * px) { // 点击取消
- uni._MASK.hide()
- uni._SHARE.hide()
- } else {
- if (e.clientX <= itemSize * px) { // 分享到微信聊天
- plus.nativeUI.showWaiting()
- uni.share({ provider: "weixin", scene: "WXSceneSession",
- ...shareInfo,
- success () {
- plus.nativeUI.toast('分享成功')
- uni._MASK.hide()
- uni._SHARE.hide()
- },
- fail (err) {
- const season = err.errMsg.split(',')[0].split(':')
- plus.nativeUI.toast(`分享失败: ${season[season.length - 1]}`)
- },
- complete() {
- plus.nativeUI.closeWaiting()
- }
- })
- } else if (e.clientX > itemSize * px && e.clientX <= (itemSize * 2 * px)) { // 分享到朋友圈
- plus.nativeUI.showWaiting()
- uni.share({ provider: "weixin", scene: "WXSenceTimeline",
- ...shareInfo,
- success () {
- plus.nativeUI.toast('分享成功')
- uni._MASK.hide()
- uni._SHARE.hide()
- },
- fail (err) {
- const season = err.errMsg.split(',')[0].split(':')
- plus.nativeUI.toast(`分享失败: ${season[season.length - 1]}`)
- },
- complete() {
- plus.nativeUI.closeWaiting()
- }
- })
- } else if (e.clientX > (itemSize * 2 * px) && e.clientX <= (itemSize * 3 * px)) { // 分享到更多
- plus.share.sendWithSystem({ content: shareInfo.href })
- }
- }
- })
- uni._MASK.show()
- uni._SHARE.show()
- }
|