uni-app 分享给好友,生成小程序二维码海报

忘是亡心i 2023-05-29 06:58 104阅读 0赞

插件地址:https://ext.dcloud.net.cn/plugin?id=586

  1. <template>
  2. <view>
  3. <view class="sharecontent">
  4. <button class="share-btn" @tap="shareEvn">分享</button>
  5. <!-- 分享弹窗-->
  6. <view class="share-pro">
  7. <view class="share-pro-mask" v-if="deliveryFlag"></view>
  8. <view class="share-pro-dialog" :class="deliveryFlag?'open':'close'" style="">
  9. <view class="close-btn" @tap="closeShareEvn">
  10. <span class="font_family"></span>
  11. </view>
  12. <view class="share-pro-title">分享</view>
  13. <view class="share-pro-body">
  14. <view class="share-item">
  15. <button open-type="share">
  16. <view class="font_family share-icon"></view>
  17. <view>分享给好友</view>
  18. </button>
  19. </view>
  20. <view class="share-item" @tap="createCanvasImageEvn">
  21. <view class="font_family share-icon"></view>
  22. <view>生成分享图片</view>
  23. </view>
  24. </view>
  25. </view>
  26. </view>
  27. <hchPoster ref="hchPoster" :canvasFlag.sync="canvasFlag" @cancel="canvasCancel" :posterObj.sync="posterData" />
  28. <view :hidden="canvasFlag">
  29. <!-- 海报 要放外面放组件里面 会找不到 canvas-->
  30. <canvas class="canvas" canvas-id="myCanvas"></canvas>
  31. <!-- 海报 -->
  32. </view>
  33. </view>
  34. </view>
  35. </template>
  36. <script>
  37. import hchPoster from '../../components/hch-poster/hch-poster.vue'
  38. export default {
  39. components: {
  40. hchPoster,
  41. },
  42. data() {
  43. return {
  44. imgone: '', //图片
  45. deliveryFlag: false,
  46. canvasFlag: true,
  47. posterData: {}
  48. }
  49. },
  50. onLoad: function(options) {
  51. },
  52. // 分享
  53. // #ifdef MP-WEIXIN
  54. onShareAppMessage: function(res) {
  55. if(res.from === 'button') {
  56. // 来自页面内转发按钮
  57. console.log(res.target)
  58. }
  59. var _self = this;
  60. var openid = uni.getStorageSync('_openid');
  61. var token = uni.getStorageSync('_token');
  62. uni.request({
  63. url: _self._apiurl + "/app/goods/sharegoods",
  64. method: 'POST',
  65. header: {
  66. 'content-type': 'application/x-www-form-urlencoded'
  67. },
  68. data: {
  69. openid: openid,
  70. token: token,
  71. goods_id: _self.goodsid
  72. },
  73. success: (res) => {
  74. console.log(res);
  75. _self._isplogin(res, function() {
  76. var data = res.data.data;
  77. })
  78. }
  79. });
  80. return {
  81. title: "清仓处理 " + _self.name + " " + _self.brand + " " + _self.price + "元",
  82. path: '/pages/class/class?goods_id=' + _self.goodsid + "&fuser_id=" + _self.myuser_id,
  83. imageUrl: _self.imgone
  84. }
  85. },
  86. //#endif
  87. methods: {
  88. createCanvasImageEvn() {
  89. var _self = this;
  90. uni.request({
  91. url: _self._apiurl + "/app/index/getminicode",
  92. method: 'POST',
  93. header: {
  94. 'content-type': 'application/x-www-form-urlencoded'
  95. },
  96. data: {
  97. openid: _self.openid,
  98. token: _self.token,
  99. goods_id: _self.goodsid, //自己的参数
  100. fuser_id: _self.myuser_id, //自己的参数
  101. page: "pages/class/class", //想要生成小程序码的页面地址
  102. width: 128, //小程序码大小
  103. },
  104. success: (res) => {
  105. console.log(res);
  106. _self._isplogin(res, function() {
  107. var data = res.data.data.url;
  108. console.log(data);
  109. Object.assign(_self.posterData, {
  110. url: _self.imgone[0].img, //商品主图
  111. icon: 'https://courier.oss-cn-shenzhen.aliyuncs.com/jpy/static/thj.png', //醉品价图标
  112. title: "清仓处理 " + _self.name + " " + _self.brand, //标题
  113. discountPrice: _self.price, //折后价格
  114. orignPrice: _self.yprice, //原价
  115. code: data, //小程序码
  116. })
  117. _self.$forceUpdate(); //强制渲染数据
  118. setTimeout(() => {
  119. _self.canvasFlag = false; //显示canvas海报
  120. _self.deliveryFlag = false; //关闭分享弹窗
  121. _self.$refs.hchPoster.createCanvasImage(); //调用子组件的方法
  122. }, 500)
  123. })
  124. }
  125. })
  126. },
  127. // 分享弹窗
  128. shareEvn() {
  129. this.deliveryFlag = true;
  130. },
  131. // 关闭分享弹窗
  132. closeShareEvn() {
  133. this.deliveryFlag = false;
  134. },
  135. // 取消海报
  136. canvasCancel(val) {
  137. this.canvasFlag = val;
  138. },
  139. }
  140. }
  141. </script>

发表评论

表情:
评论列表 (有 0 条评论,104人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序生成海报

    在小程序开发完成之后,我们会时常遇到这样的一个问题,小程序该怎么推广,增加曝光量,让更多的人看到?我们都知道,小程序推广一般是给小程序增加一个分享的功能,可以分享到群里面。