感谢该教学:https://www.cnblogs.com/wangyang0210/p/14612806.html
单页面分享
如果只希望在某几个页面设置分享菜单,则可以直接在组件的script块处添加代码:
<script>
created(){
// #ifdef MP-WEIXIN
// wx.showShareMenu() //调用微信原生的API
uni.showShareMenu({
withShareTicket:true //或者待用uni封装的API 都可以
})
// #endif
}
</script>
全局分享设置
如果希望所有页面都设置为分享,那肯定不能手动一个个添加,此时可以将分享代码提取到一个文件中,然后用 Vue的混入(mixin)方法,将分享代码添加到所有组件中。
Vue.mixin(Object)
混入方法传入一个对象,对象内一般是 JS 代码块,通过混入方法,这些代码将会被添加到所有组件的script块处。
share.js
export default {
created(){
// #ifdef MP-WEIXIN
// wx.showShareMenu() //调用微信原生的API
uni.showShareMenu({
withShareTicket:true //或者调用uni封装的分享 API 都可以
})
// #endif
}
}
导出后在main.js中引用,然后用Vue.mixin()混入
main.js
import App from './App'
import share from './share.js'
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
Vue.mixin(share) // 混入全局分享
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// #endif
查看效果
成功
额外
如果有些页面我不希望它被全局设置为可分享,就让他不能分享。此时可以调用另一个隐藏分享的API
hideShareMenu()
如果希望单个页面设置为不可分享,则添加以下代码: