{"id":68739,"date":"2026-01-30T16:16:49","date_gmt":"2026-01-30T08:16:49","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/68739.html"},"modified":"2026-01-30T16:16:49","modified_gmt":"2026-01-30T08:16:49","slug":"%e5%be%ae%e4%bf%a1%e5%b0%8f%e7%a8%8b%e5%ba%8f-%e6%89%8b%e5%8a%a8%e7%ad%be%e5%ad%97%e5%8a%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/68739.html","title":{"rendered":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd"},"content":{"rendered":"<h3 style=\"background-color:transparent\">1.\u590d\u5236\u4ee3\u7801<\/h3>\n<p>&lt;template&gt;<br \/>\n&lt;view class&#061;&#034;signature-container&#034;&gt;<br \/>\n&lt;canvas :canvas-id&#061;&#034;canvasId&#034; class&#061;&#034;signature-canvas&#034;<br \/>\nstyle&#061;&#034;width: 100%; height: 100%; background-color: #ffffff;&#034; &#064;touchstart&#061;&#034;onTouchStart&#034;<br \/>\n&#064;touchmove&#061;&#034;onTouchMove&#034; &#064;touchend&#061;&#034;onTouchEnd&#034;&gt;&lt;\/canvas&gt;<br \/>\n&lt;\/view&gt;<br \/>\n&lt;\/template&gt;<\/p>\n<p>&lt;script setup&gt;<br \/>\nimport {<br \/>\nref,<br \/>\ngetCurrentInstance<br \/>\n} from &#039;vue&#039; \/\/ \u66ff\u6362onMounted\u4e3aonReady&#xff0c;\u65e0\u9700getCurrentPages<br \/>\nimport {<br \/>\nonLoad,<br \/>\nonShow,<br \/>\nonReady,<br \/>\nonHide,<br \/>\nonUnload<br \/>\n} from &#039;&#064;dcloudio\/uni-app&#039;<br \/>\nconst instance &#061; getCurrentInstance() \/\/ \u4ec5\u7528\u7ec4\u4ef6\u5b9e\u4f8b&#xff0c;\u4e0d\u4f9d\u8d56\u9875\u9762\u5b9e\u4f8b<br \/>\nconst canvasId &#061; ref(&#039;signatureCanvas&#039;)<br \/>\nconst ctx &#061; ref(null)<br \/>\nconst isDrawing &#061; ref(false)<br \/>\nconst lastX &#061; ref(0)<br \/>\nconst lastY &#061; ref(0)<br \/>\nconst canvasRect &#061; ref({<br \/>\nleft: 0,<br \/>\ntop: 0,<br \/>\nwidth: 0,<br \/>\nheight: 0<br \/>\n})<br \/>\nconst hasValidDraw &#061; ref(false) \/\/ \u65b0\u589e&#xff1a;\u6807\u8bb0\u662f\u5426\u6709\u6709\u6548\u7ed8\u5236&#xff08;\u907f\u514d\u4fdd\u5b58\u7a7a\u753b\u5e03&#xff09;<br \/>\nconst signType &#061; ref(true)\/\/\u7b7e\u540d\u72b6\u6001<br \/>\n\/\/ \u521d\u59cb\u5316CanvasContext&#xff08;\u4ec5\u7528\u7ec4\u4ef6\u5b9e\u4f8b&#xff0c;\u65e0getCurrentPages&#xff09;<br \/>\nconst initCanvasContext &#061; () &#061;&gt; {<br \/>\nreturn new Promise((resolve, reject) &#061;&gt; {<br \/>\ntry {<br \/>\nconsole.log(&#039;\u5f00\u59cb\u521d\u59cb\u5316CanvasContext&#8230;&#039;)<br \/>\n\/\/ \u4ec5\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff0c;\u65e0\u9700\u9875\u9762\u5b9e\u4f8b<br \/>\nctx.value &#061; uni.createCanvasContext(canvasId.value, instance)<br \/>\nif (ctx.value) {<br \/>\nsetupCanvas()<br \/>\nresolve()<br \/>\n} else {<br \/>\nreject(new Error(&#039;CanvasContext\u521b\u5efa\u5931\u8d25&#039;))<br \/>\n}<br \/>\n} catch (error) {<br \/>\nconsole.error(&#039;\u521b\u5efaCanvasContext\u65f6\u51fa\u9519:&#039;, error)<br \/>\nreject(error)<br \/>\n}<br \/>\n})<br \/>\n}<\/p>\n<p>\/\/ \u8bbe\u7f6eCanvas&#xff08;\u4f18\u5316\u5c3a\u5bf8\u515c\u5e95&#xff09;<br \/>\nconst setupCanvas &#061; () &#061;&gt; {<br \/>\nif (!ctx.value) return<br \/>\nconsole.log(&#039;\u5f00\u59cb\u8bbe\u7f6eCanvas&#8230;&#039;)<br \/>\n\/\/ \u8bbe\u7f6e\u7ebf\u6761\u6837\u5f0f<br \/>\nctx.value.setStrokeStyle(&#039;#000000&#039;)<br \/>\nctx.value.setLineWidth(3)<br \/>\nctx.value.setLineCap(&#039;round&#039;)<br \/>\nctx.value.setLineJoin(&#039;round&#039;)<\/p>\n<p>\/\/ \u83b7\u53d6Canvas\u5c3a\u5bf8&#xff08;\u515c\u5e95300&#215;300&#xff0c;\u907f\u514d\u5c3a\u5bf8\u4e3a0&#xff09;<br \/>\ngetCanvasRect().then(rect &#061;&gt; {<br \/>\ncanvasRect.value &#061; rect<br \/>\nconsole.log(&#039;Canvas\u5c3a\u5bf8:&#039;, rect)<br \/>\n\/\/ \u7ed8\u5236\u767d\u8272\u80cc\u666f&#xff08;\u786e\u4fdd\u753b\u5e03\u6709\u57fa\u7840\u5185\u5bb9&#xff0c;\u907f\u514d\u7a7a\u753b\u5e03&#xff09;<br \/>\nctx.value.setFillStyle(&#039;#ffffff&#039;)<br \/>\nctx.value.fillRect(0, 0, rect.width, rect.height)<br \/>\n\/\/ \u540c\u6b65\u7ed8\u5236&#xff08;\u975e\u589e\u91cf&#xff09;&#xff0c;\u786e\u4fdd\u80cc\u666f\u5148\u6e32\u67d3<br \/>\nctx.value.draw(false, () &#061;&gt; {<br \/>\nconsole.log(&#039;Canvas\u80cc\u666f\u7ed8\u5236\u5b8c\u6210&#039;)<br \/>\n})<br \/>\n})<br \/>\n}<\/p>\n<p>\/\/ \u83b7\u53d6Canvas\u4f4d\u7f6e\u548c\u5c3a\u5bf8&#xff08;\u4ec5\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff09;<br \/>\nconst getCanvasRect &#061; () &#061;&gt; {<br \/>\nreturn new Promise((resolve) &#061;&gt; { \/\/ \u7b80\u5316reject&#xff0c;\u76f4\u63a5\u515c\u5e95<br \/>\nconst query &#061; uni.createSelectorQuery()<br \/>\n\/\/ \u4ec5\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff0c;\u65e0\u9875\u9762\u5b9e\u4f8b<br \/>\nif (instance) {<br \/>\nquery.in(instance)<br \/>\n}<br \/>\nquery.select(&#096;.signature-canvas&#096;)<br \/>\n.boundingClientRect((rect) &#061;&gt; {<br \/>\nif (rect &amp;&amp; rect.width &gt; 0 &amp;&amp; rect.height &gt; 0) {<br \/>\nresolve({<br \/>\nleft: rect.left,<br \/>\ntop: rect.top,<br \/>\nwidth: rect.width,<br \/>\nheight: rect.height<br \/>\n})<br \/>\n} else {<br \/>\nconsole.warn(&#039;\u672a\u627e\u5230Canvas\u5143\u7d20&#xff0c;\u4f7f\u7528\u515c\u5e95\u5c3a\u5bf8&#039;)<br \/>\n\/\/ \u515c\u5e95\u5c3a\u5bf8&#xff08;\u5173\u952e&#xff1a;\u907f\u514dwidth\/height\u4e3a0\u5bfc\u81f4\u7a7a\u753b\u5e03&#xff09;<br \/>\nresolve({<br \/>\nleft: 0,<br \/>\ntop: 0,<br \/>\nwidth: 300,<br \/>\nheight: 300<br \/>\n})<br \/>\n}<br \/>\n})<br \/>\n.exec()<br \/>\n})<br \/>\n}<\/p>\n<p>\/\/ \u7ed8\u5236\u7ebf\u6761&#xff08;\u4f18\u5316&#xff1a;draw\u56de\u8c03\u6807\u8bb0\u6709\u6548\u7ed8\u5236&#xff09;<br \/>\nconst drawLine &#061; (x1, y1, x2, y2) &#061;&gt; {<br \/>\nif (!ctx.value) return<br \/>\n\/\/ \u8fc7\u6ee4\u6781\u5c0f\u79fb\u52a8&#xff08;\u907f\u514d\u65e0\u6548\u7ed8\u5236&#xff09;<br \/>\nif (Math.abs(x1 &#8211; x2) &lt; 1 &amp;&amp; Math.abs(y1 &#8211; y2) &lt; 1) return<\/p>\n<p>console.log(&#096;\u7ed8\u5236\u7ebf\u6761: (${x1.toFixed(2)}, ${y1.toFixed(2)}) -&gt; (${x2.toFixed(2)}, ${y2.toFixed(2)})&#096;)<br \/>\ntry {<br \/>\nctx.value.beginPath()<br \/>\nctx.value.setStrokeStyle(&#039;#000000&#039;)<br \/>\nctx.value.setLineWidth(3)<br \/>\nctx.value.setLineCap(&#039;round&#039;)<br \/>\nctx.value.setLineJoin(&#039;round&#039;)<br \/>\nctx.value.moveTo(x1, y1)<br \/>\nctx.value.lineTo(x2, y2)<br \/>\nctx.value.stroke()<br \/>\n\/\/ \u589e\u91cf\u7ed8\u5236 &#043; \u56de\u8c03\u6807\u8bb0&#xff08;\u5173\u952e&#xff1a;\u786e\u4fdd\u7ed8\u5236\u5b8c\u6210\u540e\u6807\u8bb0&#xff09;<br \/>\nctx.value.draw(true, () &#061;&gt; {<br \/>\nhasValidDraw.value &#061; true \/\/ \u6709\u6709\u6548\u7ed8\u5236\u624d\u5141\u8bb8\u4fdd\u5b58<br \/>\nconsole.log(&#039;\u7ebf\u6761\u7ed8\u5236\u5b8c\u6210&#xff08;\u5f02\u6b65\u56de\u8c03&#xff09;&#039;)<br \/>\n})<br \/>\n} catch (error) {<br \/>\nconsole.error(&#039;\u7ed8\u5236\u7ebf\u6761\u65f6\u51fa\u9519:&#039;, error)<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ \u89e6\u6478\u5f00\u59cb&#xff08;\u4f18\u5316&#xff09;<br \/>\nconst onTouchStart &#061; async (e) &#061;&gt; {<br \/>\nif (!ctx.value) return<br \/>\nconst touch &#061; e.touches[0]<br \/>\nawait getCanvasRect() \/\/ \u786e\u4fdd\u5c3a\u5bf8\u5df2\u83b7\u53d6<br \/>\nconst rect &#061; canvasRect.value<br \/>\nconst x &#061; touch.clientX &#8211; rect.left<br \/>\nconst y &#061; touch.clientY &#8211; rect.top<\/p>\n<p>isDrawing.value &#061; true<br \/>\nlastX.value &#061; x<br \/>\nlastY.value &#061; y<br \/>\nctx.value.beginPath()<br \/>\nctx.value.moveTo(x, y)<br \/>\n}<\/p>\n<p>\/\/ \u89e6\u6478\u79fb\u52a8&#xff08;\u4f18\u5316&#xff09;<br \/>\nconst onTouchMove &#061; async (e) &#061;&gt; {<br \/>\nif (!isDrawing.value || !ctx.value) return<br \/>\nconst touch &#061; e.touches[0]<br \/>\nawait getCanvasRect()<br \/>\nconst rect &#061; canvasRect.value<br \/>\nconst x &#061; touch.clientX &#8211; rect.left<br \/>\nconst y &#061; touch.clientY &#8211; rect.top<\/p>\n<p>drawLine(lastX.value, lastY.value, x, y)<br \/>\nlastX.value &#061; x<br \/>\nlastY.value &#061; y<br \/>\n}<\/p>\n<p>\/\/ \u89e6\u6478\u7ed3\u675f&#xff08;\u4f18\u5316&#xff1a;\u7b49\u5f85\u6700\u540e\u4e00\u7b14\u7ed8\u5236&#xff09;<br \/>\nconst onTouchEnd &#061; () &#061;&gt; {<br \/>\nisDrawing.value &#061; false<br \/>\nif (ctx.value) ctx.value.closePath()<br \/>\n\/\/ \u7b49\u5f85\u6700\u540e\u4e00\u6b21draw\u5b8c\u6210&#xff08;100ms\u8db3\u591f&#xff09;<br \/>\nsetTimeout(() &#061;&gt; {<br \/>\nconsole.log(&#039;\u6700\u540e\u4e00\u7b14\u7ed8\u5236\u5b8c\u6210&#xff0c;\u53ef\u4fdd\u5b58&#039;)<br \/>\n}, 100)<br \/>\n}<\/p>\n<p>\/\/ \u6e05\u7a7a\u753b\u5e03&#xff08;\u91cd\u7f6e\u7ed8\u5236\u6807\u8bb0&#xff09;<br \/>\nconst clearCanvas &#061; () &#061;&gt; {<br \/>\nif (!ctx.value) return<br \/>\ngetCanvasRect().then(rect &#061;&gt; {<br \/>\nctx.value.clearRect(0, 0, rect.width, rect.height)<br \/>\nctx.value.setFillStyle(&#039;#ffffff&#039;)<br \/>\nctx.value.fillRect(0, 0, rect.width, rect.height)<br \/>\nctx.value.setStrokeStyle(&#039;#000000&#039;)<br \/>\nctx.value.setLineWidth(3)<br \/>\nctx.value.draw(false, () &#061;&gt; {<br \/>\nhasValidDraw.value &#061; false \/\/ \u91cd\u7f6e\u7ed8\u5236\u6807\u8bb0<br \/>\nconsole.log(&#039;\u753b\u5e03\u5df2\u6e05\u7a7a&#039;)<br \/>\n})<br \/>\n})<br \/>\n}<\/p>\n<p>\/\/ \u4fdd\u5b58\u4e3a\u56fe\u7247&#xff08;\u6838\u5fc3\u4fee\u590d&#xff1a;\u4ec5\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff0c;\u65e0getCurrentPages&#xff09;<br \/>\nconst saveToImage &#061; () &#061;&gt; {<br \/>\nreturn new Promise((resolve, reject) &#061;&gt; {<br \/>\n\/\/ \u5148\u6821\u9a8c&#xff1a;\u65e0\u6709\u6548\u7ed8\u5236\u76f4\u63a5\u62d2\u7edd<br \/>\nif (!hasValidDraw.value) {<br \/>\nuni.showToast({<br \/>\ntitle: &#039;\u8bf7\u5148\u7b7e\u540d\u540e\u518d\u63d0\u4ea4&#039;,<br \/>\nicon: &#039;none&#039;,<br \/>\nduration: 2000<br \/>\n});<br \/>\nreject(new Error(&#039;\u753b\u5e03\u4e3a\u7a7a&#xff0c;\u8bf7\u5148\u7ed8\u5236&#039;))<br \/>\nreturn<br \/>\n}<\/p>\n<p>\/\/ \u5173\u952e&#xff1a;\u5ef6\u8fdf200ms&#xff0c;\u7b49\u5f85\u6240\u6709draw\u5f02\u6b65\u7ed8\u5236\u5b8c\u6210<br \/>\nsetTimeout(async () &#061;&gt; {<br \/>\nconst rect &#061; await getCanvasRect()<br \/>\nconsole.log(&#039;\u4fdd\u5b58Canvas\u5c3a\u5bf8:&#039;, rect)<\/p>\n<p>uni.canvasToTempFilePath({<br \/>\ncanvasId: canvasId.value,<br \/>\nx: 0,<br \/>\ny: 0,<br \/>\nwidth: rect.width,<br \/>\nheight: rect.height,<br \/>\ndestWidth: rect.width * 2,<br \/>\ndestHeight: rect.height * 2,<br \/>\nfileType: &#039;png&#039;,<br \/>\nquality: 1,<br \/>\n\/\/ \u6838\u5fc3\u4fee\u590d1&#xff1a;\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff08;instance&#xff09;&#xff0c;\u65e0\u9700\u9875\u9762\u5b9e\u4f8b<br \/>\nsuccess: (res) &#061;&gt; {<br \/>\nconsole.log(&#039;\u56fe\u7247\u4fdd\u5b58\u6210\u529f:&#039;, res.tempFilePath)<br \/>\nresolve(res.tempFilePath)<br \/>\n},<br \/>\nfail: (err) &#061;&gt; {<br \/>\nconsole.error(&#039;\u56fe\u7247\u4fdd\u5b58\u5931\u8d25:&#039;, err)<br \/>\n\/\/ \u515c\u5e95\u91cd\u8bd5&#xff08;\u4ecd\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff09;<br \/>\nsetTimeout(() &#061;&gt; {<br \/>\nuni.canvasToTempFilePath({<br \/>\ncanvasId: canvasId.value,<br \/>\nwidth: rect.width,<br \/>\nheight: rect.height,<br \/>\nfileType: &#039;png&#039;,<br \/>\nsuccess: resolve,<br \/>\nfail: reject,<br \/>\n}, instance) \/\/ \u4ec5\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b<br \/>\n}, 500)<br \/>\n}<br \/>\n}, instance) \/\/ \u6838\u5fc3&#xff1a;\u7ed1\u5b9a\u7ec4\u4ef6\u5b9e\u4f8b&#xff08;\u89e3\u51b3canvas-id\u627e\u4e0d\u5230\u7684\u95ee\u9898&#xff09;<br \/>\n}, 500) \/\/ \u7b49\u5f85\u6700\u540e\u4e00\u6b21draw\u5b8c\u6210&#xff08;\u5173\u952e&#xff09;<br \/>\n})<br \/>\n}<\/p>\n<p>\/\/ \u6d4b\u8bd5\u7ed8\u5236&#xff08;\u7528\u4e8e\u9a8c\u8bc1&#xff09;<br \/>\nconst testDraw &#061; () &#061;&gt; {<br \/>\n\/\/ if (!ctx.value) return<br \/>\n\/\/ getCanvasRect().then(rect &#061;&gt; {<br \/>\n\/\/ ctx.value.beginPath()<br \/>\n\/\/ ctx.value.setStrokeStyle(&#039;#ff0000&#039;)<br \/>\n\/\/ ctx.value.setLineWidth(5)<br \/>\n\/\/ ctx.value.moveTo(50, 50)<br \/>\n\/\/ ctx.value.lineTo(100, 100)<br \/>\n\/\/ ctx.value.stroke()<br \/>\n\/\/ ctx.value.draw(false, () &#061;&gt; {<br \/>\n\/\/ hasValidDraw.value &#061; true \/\/ \u6807\u8bb0\u6709\u6709\u6548\u7ed8\u5236<br \/>\n\/\/ console.log(&#039;\u6d4b\u8bd5\u7ed8\u5236\u5b8c\u6210&#039;)<br \/>\n\/\/ })<br \/>\n\/\/ })<br \/>\n}<\/p>\n<p>\/\/ \u751f\u547d\u5468\u671f\u4f18\u5316&#xff1a;onReady\u6bd4mounted\u665a&#xff0c;\u786e\u4fddCanvas\u5df2\u6ce8\u518c&#xff08;\u65e0\u9700getCurrentPages&#xff09;<br \/>\nonReady(() &#061;&gt; {<br \/>\nconsole.log(&#039;\u7ec4\u4ef6onReady&#xff0c;\u5f00\u59cb\u521d\u59cb\u5316Canvas&#8230;&#039;)<br \/>\n\/\/ \u7f29\u77ed\u5ef6\u8fdf&#xff08;onReady\u5df2\u8db3\u591f\u665a&#xff09;<br \/>\nsetTimeout(() &#061;&gt; {<br \/>\ninitCanvasContext()<br \/>\n.then(() &#061;&gt; {<br \/>\nconsole.log(&#039;Canvas\u521d\u59cb\u5316\u6210\u529f&#039;)<br \/>\n\/\/ \u6d4b\u8bd5\u7ed8\u5236&#xff08;\u9a8c\u8bc1\u4fdd\u5b58&#xff09;<br \/>\nsetTimeout(testDraw, 1000)<br \/>\n})<br \/>\n.catch(err &#061;&gt; {<br \/>\nconsole.error(&#039;Canvas\u521d\u59cb\u5316\u5931\u8d25:&#039;, err)<br \/>\n})<br \/>\n}, 300)<br \/>\n})<\/p>\n<p>\/\/ \u66b4\u9732\u65b9\u6cd5<br \/>\ndefineExpose({<br \/>\nclearCanvas,<br \/>\nsaveToImage,<br \/>\ntestDraw<br \/>\n})<br \/>\n&lt;\/script&gt;<\/p>\n<p>&lt;style scoped&gt;<br \/>\n.signature-container {<br \/>\nwidth: 100%;<br \/>\nheight: 100%;<br \/>\nposition: relative;<br \/>\nmin-height: 300px;<br \/>\n\/* \u5173\u952e&#xff1a;\u515c\u5e95\u9ad8\u5ea6&#xff0c;\u907f\u514dCanvas\u5c3a\u5bf8\u4e3a0 *\/<br \/>\n}<\/p>\n<p>.signature-canvas {<br \/>\nwidth: 100%;<br \/>\nheight: 100%;<br \/>\nborder: 1px solid #ccc;<br \/>\ntouch-action: none;<br \/>\nposition: relative;<br \/>\nz-index: 1;<br \/>\n\/* \u786e\u4fdd\u89e6\u6478\u4e8b\u4ef6\u4e0d\u88ab\u62e6\u622a *\/<br \/>\n}<br \/>\n&lt;\/style&gt;<\/p>\n<h3>2.\u653e\u5230components\u91cc&#xff0c;\u6587\u4ef6\u540dSignaturePad.js<\/h3>\n<h3>3.\u5f15\u5165\u4f60\u7684\u9875\u9762<\/h3>\n<p>import SignaturePad from &#039;&#064;\/components\/SignaturePad.vue&#039;<\/p>\n<h3>4.\u4f7f\u7528<\/h3>\n<p>&lt;template&gt;<br \/>\n    &lt;SignaturePad ref&#061;&#034;signatureRef&#034; \/&gt;<br \/>\n&lt;\/template&gt;<\/p>\n<p>&lt;script setup&gt;<br \/>\n    import {<br \/>\nref<br \/>\n} from &#039;vue&#039;<br \/>\n    const signatureRef &#061; ref()<br \/>\n    \/\/ \u6e05\u9664\u7b7e\u540d<br \/>\nconst handleReset &#061; () &#061;&gt; {<br \/>\nsignatureRef.value.clearCanvas()<br \/>\n}<br \/>\n\/\/ \u63d0\u4ea4\u7b7e\u540d<br \/>\nconst handleSubmit &#061; async () &#061;&gt; {<br \/>\ntry {<br \/>\nconst result &#061; await signatureRef.value.saveToImage();<br \/>\ntabList.value.forEach((item, index) &#061;&gt; {<br \/>\nitem.check &#061; (index &#061;&#061;&#061; activeTab.value);<br \/>\n});<br \/>\n} catch (error) {<br \/>\nconsole.error(&#039;\u4fdd\u5b58\u5931\u8d25:&#039;, error);<br \/>\n}<br \/>\n};<br \/>\n&lt;\/script&gt;<\/p>\n<h3>5.\u6ce8\u610f\u8981\u6709\u8bbf\u95ee\u56fe\u7247\u57df\u540d\u5728\u5fae\u4fe1\u5f00\u53d1\u8005\u91cc\u8bbe\u7f6e&#xff0c;\u8981\u4e0d\u7136\u540e\u8fd4\u56de\u7684\u56fe\u7247\u770b\u4e0d\u4e86\u3002<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>1.\u590d\u5236\u4ee3\u7801<\/p>\n<p>&lt;\/canv<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4298,556,555],"topic":[],"class_list":["post-68739","post","type-post","status-publish","format-standard","hentry","category-server","tag-notepad","tag-556","tag-555"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/68739.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"1.\u590d\u5236\u4ee3\u7801 &lt;\/canv\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/68739.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-30T08:16:49+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/68739.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/68739.html\",\"name\":\"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-01-30T08:16:49+00:00\",\"dateModified\":\"2026-01-30T08:16:49+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/68739.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/68739.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/68739.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/68739.html","og_locale":"zh_CN","og_type":"article","og_title":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"1.\u590d\u5236\u4ee3\u7801 &lt;\/canv","og_url":"https:\/\/www.wsisp.com\/helps\/68739.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-01-30T08:16:49+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/68739.html","url":"https:\/\/www.wsisp.com\/helps\/68739.html","name":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-01-30T08:16:49+00:00","dateModified":"2026-01-30T08:16:49+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/68739.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/68739.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/68739.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f \u624b\u52a8\u7b7e\u5b57\u529f\u80fd"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/68739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=68739"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/68739\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=68739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=68739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=68739"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=68739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}