当前位置: 首页 > news >正文

三雷网站程序销售管理系统有免费版

三雷网站程序,销售管理系统有免费版,海淘网站建设,seo诊断优化方案使用混入结合canvas做小程序的分享 在混入里面定义一个全局共享的分享样式#xff0c;在遇到特殊页面需要单独处理 utils/share.js import { ref } from vue; export default {onShow() {// 创建时设置统一页面的默认值uni.$mpShare {title: 分享的标题,path: /pages/home/…使用混入结合canvas做小程序的分享 在混入里面定义一个全局共享的分享样式在遇到特殊页面需要单独处理 utils/share.js import { ref } from vue; export default {onShow() {// 创建时设置统一页面的默认值uni.$mpShare {title: 分享的标题,path: /pages/home/home,imageUrl: https:xxx,success: function (res) {// 转发成功之后的回调console.log(转发成功之后的回调, res);if (res.errMsg shareAppMessage:ok) {}},fail: function () {// 转发失败之后的回调console.log(转发失败之后的回调, res);if (res.errMsg shareAppMessage:fail cancel) {// 用户取消转发} else if (res.errMsg shareAppMessage:fail) {// 转发失败其中 detail message 为详细失败信息}},};},//发送给朋友onShareAppMessage(res) {console.log( uni.$mpShare-----------, uni.$mpShare);return uni.$mpShare;},//分享到朋友圈onShareTimeline(res) {return uni.$mpShare;}, };main.js混入 import share from /utils/share.js; export function createApp() {const app createSSRApp(App);app.use(Pinia.createPinia());app.mixin(share); // 这里app.use(uviewPlus);return {app,Pinia,}; }Canvas绘制海报 commonShare.js /*** canvas* context* currentObj 绘制需要用到的对象* bgImg 背景图* dpr 设备分辨率* type 类型*/export async function createPoster(canvas, context, currentObj, bgImg, dpr, type) {const bgImage await renderImg(canvas, bgImg);//绘制矩形context.drawImage(bgImage, 0, 0, canvas.width / dpr, canvas.height / dpr);context.fillStyle #FFF;context.strokeStyle #303030;context.lineWidth 2;context.strokeRect(16, 100, 343, 180);context.fillRect(16, 100, 343, 180);switch (type) {//周边商品case periphery://绘制商品图片const productPath showPicture(currentObj.goodsPictures[0].picture);const productImg await renderImg(canvas, productPath);context.drawImage(productImg, 28, 112, 150, 157);//绘制商品名称context.font normal normal bold 19px SourceHanSansCN-Bold;context.fillStyle #0D1932;context.fillText(currentObj.goodsName, 189, 136);//绘制context.font normal normal bold 25px SourceHanSansCN-Bold;context.fillStyle #FE2A12;context.fillText(${currentObj.giftPrice}.${currentObj.giftPricePrefix}起, 189, 256);break; }let path await generatePath(context);console.log(分享图片, path);return path; }//图片显示 function showPicture(srcPath) {if (srcPath.includes(http)) {return srcPath;} else {return https://xxxxxx srcPath; // 注意路径} }//创建图片对象 function renderImg(canvas, url) {// url传临时路径return new Promise((resolve) {const img canvas.createImage();img.src ${url}?timestamp${new Date().getTime()};img.onload () {resolve(img);};}); }function base64src(base64data, fun) {const base64 base64data; //base64格式图片const time new Date().getTime();const imgPath uni.env.USER_DATA_PATH /poster time share .png;//如果图片字符串不含要清空的前缀,可以不执行下行代码.const imageData base64.replace(/^data:image\/\w;base64,/, );const file uni.getFileSystemManager();file.writeFileSync(imgPath, imageData, base64);fun(imgPath); }async function generatePath(context) {let base64IMG context.canvas.toDataURL();let pathImg ;await base64src(base64IMG, (res) {pathImg res;});return pathImg; }Canvas.createImage() 创建Image对象onload事件在安卓真机下只会触发一次, 确保每次加载的 URL 是唯一的通过在 URL 后面添加一个时间戳或随机数来避免缓存问题。 img ${url}?timestamp${new Date().getTime()};单独页面的处理xxxx.vue view idcanvas v-showfalsecanvas idmyCanvas type2d canvas-idmyCanvas stylewidth: 375px; height: 300px/canvas /viewscript setup //引入分享绘制canvas import { createPoster } from /utils/commonShare.js; onShow(() {generatorCanvasUrl(); });function generatorCanvasUrl() {uni.createSelectorQuery().select(#myCanvas).node((res) {let canvas res.node;let context res.node.getContext(2d);uni.getSystemInfo({success: async function (sysRes) {const dpr sysRes.devicePixelRatio;canvas.width 375 * dpr;canvas.height 300 * dpr;context.clearRect(0, 0, canvas.width, canvas.height);context.scale(dpr, dpr);let path await createPoster(canvas, context, currentObj.value, canvasBgImg.value, dpr, canvasType.value);uni.$mpShare {title: canvasTitle.value,path: /pagesDiscover/group/group-product-dedails?fromsharePagedata encodeURIComponent(JSON.stringify(currentObj.value)),imageUrl: path,};console.log(重绘成功);},});}).exec();} /script注意几个问题 canvas的绘制时间需要在拿到数据之后dom生成之前绘制完成onShow不可以就试试onReady否则就会绘制失败图片找不到数据undefined图片路径后面一定要加时间戳保证图片路径是唯一的否则就会一直走缓存如果页面想要重置分享但是不用canvas绘制直接用下面这个 const shareData computed(() {// 分享的数据return {title: 重置,desc: 重置,path: /xxxx/xxxx/xxxx,imageUrl: xxxxx,}; }); onShow(() {uni.$mpShare shareData.value; // 修改uni.$mpShare的值 });
http://www.tj-hxxt.cn/news/143952.html

相关文章:

  • 用凡科帮别人做网站浙0577 icp网站建设
  • 太原网站制作合肥最好的网站建设公司
  • php网站多语言翻译怎么做电商是什么一般是干嘛的
  • 搞笑视频素材网站免费购物网站建设的必要性
  • 优秀企业官网设计案例深圳网站营销seo电话
  • 建设部政务网站redis做缓存的网站并发数
  • html网站设计模板关于网站建设的请示范文
  • 做家装的网站有哪些内容在线看网站源码
  • 有什么公司建网站软件推广怎么做
  • php网站开发学什么网站建设出售
  • 花都移动网站建设专业的网上购物平台
  • 山东建设厅科技处网站wordpress插件库
  • 安徽省建设工程安全 协会网站seo优化技术培训中心
  • 百度统计网站网线制作的注意事项
  • 如何用jeecg建设网站wordpress如何设置关键词和描述
  • 江西省住房城乡建设厅网站工程建设数字化管理平台app下载
  • seo 网站结构多个网站 备案吗
  • 深圳网站建设 设计首选深圳市百度包头网站建设
  • 学校网站制作大悟网站制作
  • 网站色调设计方案中山 网站建设
  • 做网站大概一个月多少工资设计素材网址
  • 化妆品商城网站建设策划方案ppt在线预览wordpress
  • 乐清做网站的公司有哪些优秀网站设计赏析
  • 厂房建设招标网站博客营销是一种新兴的网络营销方式
  • 上海市建设三类人员报名网站wordpress本地打开
  • 舟山外贸建站公司公网带宽1m能建设电商网站吗
  • 无锡公司建立网站wordpress付费文章插件
  • 海南省住建设厅网站报监的工程抖音seo排名优化公司
  • 网站设计素材图片aso排名
  • 诸暨制作网站的公司有哪些毕设网站代做一般预算多少钱