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

网站设计与管理方向做我的世界壁纸网站

网站设计与管理方向,做我的世界壁纸网站,有免费做海报的网站吗,公众号怎么开通直播使用混入结合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.hkea.cn/news/14320238/

相关文章:

  • php+mysql网站开发全程实例 下载网站网站开发
  • 软件商店电脑版下载如何进行关键词优化工作
  • .org做商业网站营销推广有哪些公司
  • 网页设计网站哪个公司好epanel wordpress
  • 城阳做网站找哪家诱导网站怎么做
  • 江苏靖江苏源建设有限公司招标网站手机网络不好怎么回事但信号是满的
  • 网站建设范文wordpress页面模版调用分类目录
  • 天津网站建设哪里好品牌推广名词解释
  • 沧州做网站的大公司微平台是什么意思
  • 太原seo网站优化电商网站cms
  • 公众号首图制作网站怎么在云服务器上搭建网站
  • 聊城网站建设工作室小程序开发 杭州
  • 单位网站开发费用入什么费用湘潭网站建设 安全还踏实磐石网络
  • 做兼职的设计网站有哪些工作内容网站设计目的与规划
  • 国外网站建设现状广东网站系统建设
  • 房地产网站大全潍坊大宇网络网站建设
  • 企业网站可信认证必须做吗图库素材网站模板
  • 上海高端网站建设制作旅游网站开发研究背景
  • 手机wap网站开发教程中小学生做的网站
  • 哪些网站做夜场女孩多中国合伙人2做的什么网站
  • 网站12栅格系统怎么做ios软件开发工程师
  • 站酷网素材图库茂名优化网站建设
  • 深圳做营销网站的公司哪家好网站建设规范布局有几部分
  • 重庆集团公司网站建设外贸建站 知乎
  • 网站建设需求表格flash网站管理系统
  • 如何网站做百度推广海南省建设监理协会网站
  • 织梦网站怎么做索引地图图片制作带字
  • 文化馆网站建设意义北京外包公司排行榜
  • 网站建设业务拓展思路交易平台网站怎么做
  • 哈尔滨网站优化技术艺术签名设计免费版