{"id":83217,"date":"2024-11-10T07:19:43","date_gmt":"2024-11-10T03:49:43","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/"},"modified":"2024-11-10T07:19:43","modified_gmt":"2024-11-10T03:49:43","slug":"hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/","title":{"rendered":"\u0637\u0631\u0627\u062d\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 Hongmeng: \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639 \u067e\u0648\u06cc\u0627 \u0648 \u062a\u0648\u0627\u0628\u0639 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062e\u0644\u0627\u0635\u0647 \u06a9\u0631\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0627\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u0627\u0648\u0631\u06cc\u060c \u0627\u0634\u062a\u0628\u0627\u0647\u0627\u062a \u0648 \u062d\u0630\u0641\u06cc\u0627\u062a \u0627\u062c\u062a\u0646\u0627\u0628 \u0646\u0627\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0638\u0631\u0627\u062a \u0648 \u0633\u0648\u0627\u0644\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a \u0645\u062a\u0642\u0627\u0628\u0644 \u0645\u0637\u0631\u062d \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u0648 \u0647\u0631 \u06af\u0648\u0646\u0647 \u0686\u0627\u067e \u0645\u062c\u062f\u062f \u0628\u0647 \u0647\u0631 \u0634\u06a9\u0644\u06cc \u0628\u0627\u06cc\u062f \u0645\u0646\u0628\u0639 \u0648 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0630\u06a9\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u062c\u0647\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0645\u0631\u0648\u0632\u06cc\u060c \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u0647 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u0645\u0647\u0645\u06cc \u0628\u0631\u0627\u06cc \u0645\u0631\u062f\u0645 \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0632\u0628\u0627\u0646\u200c\u0647\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646 \u062f\u0627\u0631\u062f\u060c \u0628\u0644\u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0631\u0627\u062d\u062a \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0628\u0631\u0627\u06cc \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0635\u0644 \u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Huawei HarmonyOS Next (API12) \u0634\u0627\u0645\u0644 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc \u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u060c \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc \u06a9\u0644\u06cc\u062f\u060c \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0648 \u063a\u06cc\u0631\u0647 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  1. \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u067e\u0631\u0648\u0698\u0647 \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0637\u0631\u0627\u062d\u06cc<\/p>\n<p>  (1) \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u06cc\u0646 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062c\u0627\u0628\u0647\u200c\u062c\u0627 \u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u062c\u0627\u0628\u0647\u200c\u062c\u0627\u06cc\u06cc \u0633\u0631\u06cc\u0639 \u0628\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0686\u06cc\u0646\u06cc \u0648 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0628\u0647 \u0632\u0628\u0627\u0646 \u0645\u0642\u0635\u062f \u062a\u0631\u062c\u0645\u0647 \u0634\u0648\u062f \u0648 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u062f\u0633\u062a\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0628\u0631\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f.<\/p>\n<p>  (2) \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0641\u0648\u0642\u060c \u0645\u0627 \u06cc\u06a9 \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0644\u0627\u06cc\u0647 \u0627\u06cc \u0631\u0627 \u0627\u062a\u062e\u0627\u0630 \u06a9\u0631\u062f\u06cc\u0645. \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc\u060c \u0644\u0627\u06cc\u0647 \u0647\u0633\u062a\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f. \u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0645\u0633\u0626\u0648\u0644 \u0646\u0645\u0627\u06cc\u0634 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a \u0645\u0633\u0626\u0648\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc API \u062a\u0631\u062c\u0645\u0647 \u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u062a\u0646 \u0627\u0633\u062a \u0648 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0635\u0644\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0637\u0631\u0627\u062d\u06cc \u062c\u062f\u0627 \u0634\u062f\u0647\u060c \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0647\u0627\u06cc \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0631\u0627 \u0631\u0648\u0634\u0646 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u06af\u0633\u062a\u0631\u0634 \u0622\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  2. \u0686\u06cc\u062f\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0648\u0639 \u0641\u0631\u0639\u06cc<\/p>\n<p>  (1) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631\u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647<\/p>\n<p>\u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Hongmeng\u060c \u0645\u0627 \u0639\u0628\u0648\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645 ohos_extension.input_method \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0646\u0648\u0639 \u0641\u0631\u0639\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc. \u0645\u062b\u0627\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0627 \u0641\u0631\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0627 \u0627\u0632 \u0632\u06cc\u0631\u0634\u0627\u062e\u0647\u200c\u0647\u0627 \u062f\u0631 \u0647\u0631 \u062f\u0648 \u0632\u0628\u0627\u0646 \u0686\u06cc\u0646\u06cc \u0648 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n<p>{<br \/>\n  &#8220;module&#8221;: {<br \/>\n    &#8220;extensionAbilities&#8221;: [<br \/>\n      {<br \/>\n        &#8220;description&#8221;: &#8220;InputMethodExtDemo&#8221;,<br \/>\n        &#8220;icon&#8221;: &#8220;Smedia:icon&#8221;,<br \/>\n        &#8220;name&#8221;: &#8220;InputMethodExtAbility&#8221;,<br \/>\n        &#8220;srcEntry&#8221;: &#8220;.\/ets\/InputMethodExtensionAbility\/InputMethodService.ts&#8221;,<br \/>\n        &#8220;type&#8221;: &#8220;inputMethod&#8221;,<br \/>\n        &#8220;exported&#8221;: true,<br \/>\n        &#8220;metadata&#8221;: [<br \/>\n          {<br \/>\n            &#8220;name&#8221;: &#8220;ohos.extension.input_method&#8221;,<br \/>\n            &#8220;resource&#8221;: &#8220;Sprofile:input_method_config&#8221;<br \/>\n          }<br \/>\n        ]\n      }<br \/>\n    ]\n  },<br \/>\n  &#8220;subtypes&#8221;: [<br \/>\n    {<br \/>\n      &#8220;icon&#8221;: &#8220;Smedia:icon&#8221;,<br \/>\n      &#8220;id&#8221;: &#8220;InputMethodExtAbility&#8221;,<br \/>\n      &#8220;label&#8221;: &#8220;$string:english&#8221;,<br \/>\n      &#8220;locale&#8221;: &#8220;en-US&#8221;,<br \/>\n      &#8220;mode&#8221;: &#8220;lower&#8221;<br \/>\n    },<br \/>\n    {<br \/>\n      &#8220;icon&#8221;: &#8220;Smedia:icon&#8221;,<br \/>\n      &#8220;id&#8221;: &#8220;InputMethodExtAbility1&#8221;,<br \/>\n      &#8220;label&#8221;: &#8220;$string:chinese&#8221;,<br \/>\n      &#8220;locale&#8221;: &#8220;zh-CN&#8221;,<br \/>\n      &#8220;mode&#8221;: &#8220;lower&#8221;<br \/>\n    }<br \/>\n  ]\n}<\/p>\n<p>  (2) \u0631\u0627\u0628\u0637 \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 switchCurrentInputMethodSubtype \u0631\u0627\u0628\u0637 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u0633\u062a:<\/p>\n<p>import { InputMethodSubtype, inputMethod } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>export class KeyboardController {<br \/>\n  async switchCurrentInputMethodSubtype() {<br \/>\n    let subTypes = await inputMethod.getSetting().listCurrentInputMethodSubtype();<br \/>\n    let currentSubType = inputMethod.getCurrentInputMethodSubtype();<br \/>\n    for (let i = 0; i &lt; subTypes.length; i++) {<br \/>\n      if (subTypes[i].id!== currentSubType.id) {<br \/>\n        await inputMethod.switchCurrentInputMethodSubtype(subTypes[i]);<br \/>\n      }<br \/>\n    }<br \/>\n  }<br \/>\n}<\/p>\n<p>  (3) \u0646\u0638\u0627\u0631\u062a setSubtype \u0631\u0648\u06cc\u062f\u0627\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u0641\u0631\u0639\u06cc\u060c \u0628\u0627\u06cc\u062f \u06af\u0648\u0634 \u06a9\u0646\u06cc\u0645 setSubtype \u0631\u0648\u06cc\u062f\u0627\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u0633\u062a:<\/p>\n<p>import { InputMethodSubtype, inputMethodEngine, inputMethod } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>export class KeyboardController {<br \/>\n  async handleSubtypeChange() {<br \/>\n    let panel: inputMethodEngine.Panel;<br \/>\n    let inputMethodAbility: inputMethodEngine.InputMethodAbility = inputMethodEngine.getInputMethodAbility();<br \/>\n    inputMethodAbility.on(&#8216;setSubtype&#8217;, (inputMethodSubtype: InputMethodSubtype) =&gt; {<br \/>\n      if (inputMethodSubtype.id === &#8216;InputMethodExtAbility&#8217;) {<br \/>\n        panel.setUiContent(&#8216;pages\/Index&#8217;);<br \/>\n      } else if (inputMethodSubtype.id === &#8216;InputMethodExtAbility1&#8217;) {<br \/>\n        panel.setUiContent(&#8216;pages\/Index1&#8217;);<br \/>\n      }<br \/>\n    });<br \/>\n  }<br \/>\n}<\/p>\n<p>  3. \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0698\u0648\u0644 \u062a\u0627\u0628\u0639 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af<\/p>\n<p>  (1) \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0645\u062a\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u06cc\u06a9 \u06a9\u0627\u0631 \u062a\u0631\u062c\u0645\u0647 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0645\u062a\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u0645\u06cc \u0641\u0631\u0633\u062a\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u06a9\u0627\u0631 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Promise\uff09\uff1a<\/p>\n<p>async function translateText(text: string): Promise&lt;string&gt; {<br \/>\n  return new Promise((resolve, reject) =&gt; {<br \/>\n    \/\/ \u8fd9\u91cc\u6a21\u62df\u4e00\u4e2a\u5f02\u6b65\u7ffb\u8bd1\u64cd\u4f5c\uff0c\u5b9e\u9645\u5e94\u7528\u4e2d\u5e94\u8c03\u7528\u771f\u5b9e\u7684\u7ffb\u8bd1API<br \/>\n    setTimeout(() =&gt; {<br \/>\n      resolve(`\u7ffb\u8bd1\u7ed3\u679c: ${text}`);<br \/>\n    }, 1000);<br \/>\n  });<br \/>\n}<\/p>\n<p>  (2) API \u062a\u0631\u062c\u0645\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Hongmeng\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc API \u062a\u0631\u062c\u0645\u0647 \u0628\u0627\u06cc\u062f \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 (\u0645\u0627\u0646\u0646\u062f Ability \u0627\u0631\u062a\u0628\u0627\u0637) \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647. \u062f\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a (\u0628\u0627 \u0641\u0631\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u0627\u0633\u062a ServiceAbility\uff09\uff1a<\/p>\n<p>import { FeatureAbility } from &#8216;@ohos.ability.featureAbility&#8217;;<\/p>\n<p>async function callTranslationService(text: string): Promise&lt;string&gt; {<br \/>\n  let want = {<br \/>\n    bundleName: &#8216;com.example.translation&#8217;,<br \/>\n    abilityName: &#8216;TranslationServiceAbility&#8217;<br \/>\n  };<br \/>\n  try {<br \/>\n    let result = await FeatureAbility.callAbility(want, { text });<br \/>\n    return result;<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;\u7ffb\u8bd1\u670d\u52a1\u8c03\u7528\u5931\u8d25:&#8217;, error);<br \/>\n    return &#8221;;<br \/>\n  }<br \/>\n}<\/p>\n<p>  (3) \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u06a9\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u062a\u0645\u0627\u0633 \u06cc\u0627 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u062f\u0631 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0628\u0627\u06cc\u062f \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>callTranslationService(&#8216;Hello&#8217;).then((result) =&gt; {<br \/>\n  console.log(&#8216;\u7ffb\u8bd1\u7ed3\u679c:&#8217;, result);<br \/>\n  \/\/ \u5728\u8f93\u5165\u754c\u9762\u663e\u793a\u7ffb\u8bd1\u7ed3\u679c<br \/>\n});<\/p>\n<p>  4. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627<\/p>\n<p>  (1) \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0628\u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0631\u062c\u0645\u0647<\/p>\n<p>\u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0631\u062c\u0645\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0628\u06a9\u0647 \u06cc\u0627 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0648\u062f\u0646 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u06cc\u062f. \u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627\u06cc \u062f\u0648\u0633\u062a\u0627\u0646\u0647 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<p>callTranslationService(&#8216;Hello&#8217;).catch((error) =&gt; {<br \/>\n  console.error(&#8216;\u7ffb\u8bd1\u5931\u8d25:&#8217;, error);<br \/>\n  \/\/ \u663e\u793a\u9519\u8bef\u63d0\u793a\u7ed9\u7528\u6237\uff0c\u5982\u5f39\u51fa\u5bf9\u8bdd\u6846\u63d0\u793a\u201c\u7ffb\u8bd1\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u201d<br \/>\n});<\/p>\n<p>  (2) \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0627 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0627\u06cc\u062f \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0645\u0646\u0627\u0633\u0628 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u06af\u0634\u062a \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647\u060c \u0646\u062a\u0627\u06cc\u062c \u062f\u0631 \u06a9\u0646\u0627\u0631 \u06a9\u0627\u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u0634\u062f\u0647 \u0628\u0647 \u0645\u0648\u0642\u0639 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0633\u0631\u062f\u0631\u06af\u0645\u06cc \u0646\u0645\u0627\u06cc\u0634\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0634\u0631\u0627\u06cc\u0637\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0647 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0645\u062a\u0646 \u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0631\u062c\u0645\u0647 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0631\u062f.<\/p>\n<p>  5. \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0648 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>  (1) \u06a9\u062f \u0646\u0645\u0648\u0646\u0647<\/p>\n<p>\u062f\u0631 \u0632\u06cc\u0631 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0633\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\/\/ InputMethodService.ts<br \/>\nimport { Want } from &#8216;@kit.AbilityKit&#8217;;<br \/>\nimport keyboardController from &#8216;.\/model\/KeyboardController&#8217;;<br \/>\nimport { InputMethodExtensionAbility } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>export default class InputDemoService extends InputMethodExtensionAbility {<br \/>\n  onCreate(want: Want): void {<br \/>\n    keyboardController.onCreate(this.context);<br \/>\n  }<\/p>\n<p>  onDestroy(): void {<br \/>\n    keyboardController.onDestroy();<br \/>\n  }<br \/>\n}<\/p>\n<p>\/\/ KeyboardController.ts<br \/>\nimport { display } from &#8216;@kit.ArkUT&#8217;;<br \/>\nimport { inputMethodEngine, InputMethodExtensionContext } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>const inputMethodAbility: inputMethodEngine.InputMethodAbility = inputMethodEngine.getInputMethodAbility();<\/p>\n<p>export class KeyboardController {<br \/>\n  private mContext: InputMethodExtensionContext | undefined = undefined;<br \/>\n  private panel: inputMethodEngine.Panel | undefined = undefined;<br \/>\n  private textInputClient: inputMethodEngine.InputClient | undefined = undefined;<br \/>\n  private keyboardController: inputMethodEngine.KeyboardController | undefined = undefined;<\/p>\n<p>  constructor() {}<\/p>\n<p>  public onCreate(context: InputMethodExtensionContext): void {<br \/>\n    this.mContext = context;<br \/>\n    this.initWindow();<br \/>\n    this.registerListener();<br \/>\n  }<\/p>\n<p>  public onDestroy(): void {<br \/>\n    this.unRegisterListener();<br \/>\n    if (this.panel) {<br \/>\n      this.panel.hide();<br \/>\n      inputMethodAbility.destroyPanel(this.panel);<br \/>\n    }<br \/>\n    if (this.mContext) {<br \/>\n      this.mContext.destroy();<br \/>\n    }<br \/>\n  }<\/p>\n<p>  public insertText(text: string): void {<br \/>\n    if (this.textInputClient) {<br \/>\n      this.textInputClient.insertText(text);<br \/>\n      \/\/ \u89e6\u53d1\u7ffb\u8bd1\u4efb\u52a1<br \/>\n      this.translateText(text);<br \/>\n    }<br \/>\n  }<\/p>\n<p>  public deleteForward(length: number): void {<br \/>\n    if (this.textInputClient) {<br \/>\n      this.textInputClient.deleteForward(length);<br \/>\n    }<br \/>\n  }<\/p>\n<p>  private initWindow(): void {<br \/>\n    if (this.mContext === undefined) {<br \/>\n      return;<br \/>\n    }<br \/>\n    let dis = display.getDefaultDisplaySync();<br \/>\n    let dWidth = dis.width;<br \/>\n    let dHeight = dis.height;<br \/>\n    let keyHeightRate = 0.47;<br \/>\n    let keyHeight = dHeight * keyHeightRate;<br \/>\n    let nonBarPosition = dHeight &#8211; keyHeight;<br \/>\n    let panelInfo: inputMethodEngine.PanelInfo = {<br \/>\n      type: inputMethodEngine.PanelType.SOFT_KEYBOARD,<br \/>\n      flag: inputMethodEngine.PanelFlag.FLG_FIXED<br \/>\n    };<br \/>\n    inputMethodAbility.createPanel(this.mContext, panelInfo).then(async (inputPanel: inputMethodEngine.Panel) =&gt; {<br \/>\n      this.panel = inputPanel;<br \/>\n      if (this.panel) {<br \/>\n        await this.panel.resize(dWidth, keyHeight);<br \/>\n        await this.panel.moveTo(0, nonBarPosition);<br \/>\n        await this.panel.setUiContent(&#8216;InputMethodExtensionAbility\/pages\/Index&#8217;);<br \/>\n      }<br \/>\n    });<br \/>\n  }<\/p>\n<p>  private registerListener(): void {<br \/>\n    this.registerInputListener();<br \/>\n  }<\/p>\n<p>  private registerInputListener(): void {<br \/>\n    inputMethodAbility.on(&#8216;inputStart&#8217;, (kbController, textInputClient) =&gt; {<br \/>\n      this.textInputClient = textInputClient;<br \/>\n      this.keyboardController = kbController;<br \/>\n    });<br \/>\n    inputMethodAbility.on(&#8216;inputStop&#8217;, () =&gt; {<br \/>\n      this.onDestroy();<br \/>\n    });<br \/>\n  }<\/p>\n<p>  private unRegisterListener(): void {<br \/>\n    inputMethodAbility.off(&#8216;inputStart&#8217;);<br \/>\n    inputMethodAbility.off(&#8216;inputStop&#8217;, () =&gt; {});<br \/>\n  }<\/p>\n<p>  private async translateText(text: string): Promise&lt;void&gt; {<br \/>\n    try {<br \/>\n      let result = await callTranslationService(text);<br \/>\n      \/\/ \u5904\u7406\u7ffb\u8bd1\u7ed3\u679c\u5e76\u663e\u793a<br \/>\n      console.log(&#8216;\u7ffb\u8bd1\u7ed3\u679c:&#8217;, result);<br \/>\n    } catch (error) {<br \/>\n      console.error(&#8216;\u7ffb\u8bd1\u5931\u8d25:&#8217;, error);<br \/>\n    }<br \/>\n  }<br \/>\n}<\/p>\n<p>const keyboardController = new KeyboardController();<br \/>\nexport default keyboardController;<\/p>\n<p>  (2) \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>\u0634\u06a9\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0633\u0637\u062d<br \/>\n\u0634\u0631\u062d \u0639\u0645\u0644\u06a9\u0631\u062f<\/p>\n<p>\u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc<br \/>\n\u0646\u0645\u0627\u06cc\u0634 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647.<\/p>\n<p>\u0644\u0627\u06cc\u0647 \u0647\u0633\u062a\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<br \/>\n\u0648\u0636\u0639\u06cc\u062a \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u0628\u0627 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0644\u0627\u06cc\u0647 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647<br \/>\n\u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u062a\u0646 \u0628\u0627 API \u062a\u0631\u062c\u0645\u0647 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0635\u0644\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0632 \u0637\u0631\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0648\u0642\u060c \u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u06a9\u0647 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647\u06cc\u0646\u0647 \u06a9\u0631\u062f\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0632\u0628\u0627\u0646 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u062a\u0648\u0627\u0646\u062f \u0645\u0631\u062c\u0639 \u0648 \u0645\u0631\u062c\u0639 \u0645\u0641\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0633\u06cc\u0633\u062a\u0645 Hongmeng \u0628\u0627\u0634\u062f.<\/p>\n<blockquote>\n<p>\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062e\u0644\u0627\u0635\u0647 \u06a9\u0631\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0627\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u0627\u0648\u0631\u06cc\u060c \u0627\u0634\u062a\u0628\u0627\u0647\u0627\u062a \u0648 \u062d\u0630\u0641\u06cc\u0627\u062a \u0627\u062c\u062a\u0646\u0627\u0628 \u0646\u0627\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0638\u0631\u0627\u062a \u0648 \u0633\u0648\u0627\u0644\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a \u0645\u062a\u0642\u0627\u0628\u0644 \u0645\u0637\u0631\u062d \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u0648 \u0647\u0631 \u06af\u0648\u0646\u0647 \u0686\u0627\u067e \u0645\u062c\u062f\u062f \u0628\u0647 \u0647\u0631 \u0634\u06a9\u0644\u06cc \u0628\u0627\u06cc\u062f \u0645\u0646\u0628\u0639 \u0648 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0630\u06a9\u0631 \u06a9\u0646\u062f.<\/p>\n<\/blockquote>\n<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u062c\u0647\u0627\u0646\u06cc \u0634\u062f\u0647 \u0627\u0645\u0631\u0648\u0632\u06cc\u060c \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u0647 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u0645\u0647\u0645\u06cc \u0628\u0631\u0627\u06cc \u0645\u0631\u062f\u0645 \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0632\u0628\u0627\u0646\u200c\u0647\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646 \u062f\u0627\u0631\u062f\u060c \u0628\u0644\u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0631\u0627\u062d\u062a \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0628\u0631\u0627\u06cc \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0635\u0644 \u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Huawei HarmonyOS Next (API12) \u0634\u0627\u0645\u0644 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc \u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u060c \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc \u06a9\u0644\u06cc\u062f\u060c \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u0648 \u063a\u06cc\u0631\u0647 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%D8%A7%D9%84%D8%B2%D8%A7%D9%85%D8%A7%D8%AA_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D9%88_%D8%AA%D8%AC%D8%B2%DB%8C%D9%87_%D9%88_%D8%AA%D8%AD%D9%84%DB%8C%D9%84_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C\" >1. \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u067e\u0631\u0648\u0698\u0647 \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0637\u0631\u0627\u062d\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1\" >(1) \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >(2) \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_%DA%86%DB%8C%D8%AF%D9%85%D8%A7%D9%86_%D8%B5%D9%81%D8%AD%D9%87_%DA%A9%D9%84%DB%8C%D8%AF_%DA%86%D9%86%D8%AF_%D8%B2%D8%A8%D8%A7%D9%86%D9%87_%D9%88_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D9%86%D9%88%D8%B9_%D9%81%D8%B1%D8%B9%DB%8C\" >2. \u0686\u06cc\u062f\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0648\u0639 \u0641\u0631\u0639\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%B2%DB%8C%D8%B1%DA%AF%D8%B1%D9%88%D9%87_%D9%87%D8%A7%DB%8C_%DA%86%D9%86%D8%AF_%D8%B2%D8%A8%D8%A7%D9%86%D9%87\" >(1) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631\u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%B3%D9%88%D8%A6%DB%8C%DA%86%DB%8C%D9%86%DA%AF_%D8%B2%DB%8C%D8%B1%D9%86%D9%88%D8%B9_%D8%B1%D8%A7_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >(2) \u0631\u0627\u0628\u0637 \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#3_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_setSubtype_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF\" >(3) \u0646\u0638\u0627\u0631\u062a setSubtype \u0631\u0648\u06cc\u062f\u0627\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#3_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%88_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D8%AA%D8%A7%D8%A8%D8%B9_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A8%D9%84%D8%A7%D8%AF%D8%B1%D9%86%DA%AF\" >3. \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0698\u0648\u0644 \u062a\u0627\u0628\u0639 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%D8%A7%D8%B2_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D9%86%D8%A7%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D9%87%D8%A7%DB%8C_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >(1) \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_API_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C_%D9%85%D8%AA%D9%82%D8%A7%D8%A8%D9%84_%D8%B1%D8%A7_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >(2) API \u062a\u0631\u062c\u0645\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#3_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%B1%D8%A7_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF_%D9%88_%D8%A8%D9%87_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%A8%D8%A7%D8%B2%DA%AF%D8%B1%D8%AF%DB%8C%D8%AF\" >(3) \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#4_%D8%B3%D8%A7%D8%B2%DA%AF%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D9%88_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AE%D8%B7%D8%A7\" >4. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D8%B4%D8%A8%DA%A9%D9%87_%D8%AF%D8%B1_%D8%B7%D9%88%D9%84_%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4_%D8%AA%D8%B1%D8%AC%D9%85%D9%87\" >(1) \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0628\u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0631\u062c\u0645\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D8%AD%D8%A7%D8%B5%D9%84_%DA%A9%D9%86%DB%8C%D8%AF_%DA%A9%D9%87_%D9%85%D8%AA%D9%86_%D9%88%D8%A7%D8%B1%D8%AF_%D8%B4%D8%AF%D9%87_%D8%AA%D9%88%D8%B3%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1_%D9%88_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A8%D9%87_%D8%B7%D9%88%D8%B1_%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86_%D9%86%D9%85%D8%A7%DB%8C%D8%B4_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%D8%B4%D9%88%D9%86%D8%AF\" >(2) \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#5_%D9%86%D9%85%D9%88%D9%86%D9%87_%DA%A9%D8%AF_%D9%88_%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >5. \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0648 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#1_%DA%A9%D8%AF_%D9%86%D9%85%D9%88%D9%86%D9%87\" >(1) \u06a9\u062f \u0646\u0645\u0648\u0646\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/hong-meng-duo-yu-yan-zhi-neng-shu-ru-fa-she-ji-dong-tai-qie-huan-zi-lei-xing-yu-shi-shi-fan-yi-gong-neng-2508\/#2_%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >(2) \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"1_%D8%A7%D9%84%D8%B2%D8%A7%D9%85%D8%A7%D8%AA_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D9%88_%D8%AA%D8%AC%D8%B2%DB%8C%D9%87_%D9%88_%D8%AA%D8%AD%D9%84%DB%8C%D9%84_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C\"><\/span>\n<p>  1. \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u067e\u0631\u0648\u0698\u0647 \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0637\u0631\u0627\u062d\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1\"><\/span>\n<p>  (1) \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u06cc\u0646 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062c\u0627\u0628\u0647\u200c\u062c\u0627 \u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u062c\u0627\u0628\u0647\u200c\u062c\u0627\u06cc\u06cc \u0633\u0631\u06cc\u0639 \u0628\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0686\u06cc\u0646\u06cc \u0648 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0628\u0647 \u0632\u0628\u0627\u0646 \u0645\u0642\u0635\u062f \u062a\u0631\u062c\u0645\u0647 \u0634\u0648\u062f \u0648 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u062f\u0633\u062a\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0628\u0631\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  (2) \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0641\u0648\u0642\u060c \u0645\u0627 \u06cc\u06a9 \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0644\u0627\u06cc\u0647 \u0627\u06cc \u0631\u0627 \u0627\u062a\u062e\u0627\u0630 \u06a9\u0631\u062f\u06cc\u0645. \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc\u060c \u0644\u0627\u06cc\u0647 \u0647\u0633\u062a\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f. \u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0645\u0633\u0626\u0648\u0644 \u0646\u0645\u0627\u06cc\u0634 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a \u0645\u0633\u0626\u0648\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc API \u062a\u0631\u062c\u0645\u0647 \u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u062a\u0646 \u0627\u0633\u062a \u0648 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0635\u0644\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u0637\u0631\u0627\u062d\u06cc \u062c\u062f\u0627 \u0634\u062f\u0647\u060c \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0647\u0627\u06cc \u0647\u0631 \u0644\u0627\u06cc\u0647 \u0631\u0627 \u0631\u0648\u0634\u0646 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u06af\u0633\u062a\u0631\u0634 \u0622\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"2_%DA%86%DB%8C%D8%AF%D9%85%D8%A7%D9%86_%D8%B5%D9%81%D8%AD%D9%87_%DA%A9%D9%84%DB%8C%D8%AF_%DA%86%D9%86%D8%AF_%D8%B2%D8%A8%D8%A7%D9%86%D9%87_%D9%88_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D9%86%D9%88%D8%B9_%D9%81%D8%B1%D8%B9%DB%8C\"><\/span>\n<p>  2. \u0686\u06cc\u062f\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0648\u0639 \u0641\u0631\u0639\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%B2%DB%8C%D8%B1%DA%AF%D8%B1%D9%88%D9%87_%D9%87%D8%A7%DB%8C_%DA%86%D9%86%D8%AF_%D8%B2%D8%A8%D8%A7%D9%86%D9%87\"><\/span>\n<p>  (1) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631\u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Hongmeng\u060c \u0645\u0627 \u0639\u0628\u0648\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>ohos_extension.input_method<\/code> \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0646\u0648\u0639 \u0641\u0631\u0639\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc. \u0645\u062b\u0627\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0627 \u0641\u0631\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0627 \u0627\u0632 \u0632\u06cc\u0631\u0634\u0627\u062e\u0647\u200c\u0647\u0627 \u062f\u0631 \u0647\u0631 \u062f\u0648 \u0632\u0628\u0627\u0646 \u0686\u06cc\u0646\u06cc \u0648 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"extensionAbilities\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"InputMethodExtDemo\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"icon\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Smedia:icon\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"InputMethodExtAbility\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"srcEntry\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\".\/ets\/InputMethodExtensionAbility\/InputMethodService.ts\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"inputMethod\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"exported\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"metadata\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n          <\/span><span class=\"p\">{<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"ohos.extension.input_method\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"resource\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Sprofile:input_method_config\"<\/span><span class=\"w\">\n          <\/span><span class=\"p\">}<\/span><span class=\"w\">\n        <\/span><span class=\"p\">]<\/span><span class=\"w\">\n      <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"p\">]<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"subtypes\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n    <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"icon\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Smedia:icon\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"InputMethodExtAbility\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"$string:english\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"locale\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"en-US\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"mode\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"lower\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">},<\/span><span class=\"w\">\n    <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"icon\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Smedia:icon\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"InputMethodExtAbility1\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"$string:chinese\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"locale\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"zh-CN\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"mode\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"lower\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%B1%D8%A7%D8%A8%D8%B7_%D8%B3%D9%88%D8%A6%DB%8C%DA%86%DB%8C%D9%86%DA%AF_%D8%B2%DB%8C%D8%B1%D9%86%D9%88%D8%B9_%D8%B1%D8%A7_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  (2) \u0631\u0627\u0628\u0637 \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>switchCurrentInputMethodSubtype<\/code> \u0631\u0627\u0628\u0637 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0633\u0648\u0626\u06cc\u0686\u06cc\u0646\u06af \u0632\u06cc\u0631\u0646\u0648\u0639. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">InputMethodSubtype<\/span><span class=\"p\">,<\/span> <span class=\"nx\">inputMethod<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.IMEKit<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">KeyboardController<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">async<\/span> <span class=\"nf\">switchCurrentInputMethodSubtype<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">subTypes<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getSetting<\/span><span class=\"p\">().<\/span><span class=\"nf\">listCurrentInputMethodSubtype<\/span><span class=\"p\">();<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">currentSubType<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getCurrentInputMethodSubtype<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">for <\/span><span class=\"p\">(<\/span><span class=\"kd\">let<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">subTypes<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">subTypes<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">id<\/span><span class=\"o\">!==<\/span> <span class=\"nx\">currentSubType<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">await<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">switchCurrentInputMethodSubtype<\/span><span class=\"p\">(<\/span><span class=\"nx\">subTypes<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"3_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_setSubtype_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF\"><\/span>\n<p>  (3) \u0646\u0638\u0627\u0631\u062a <code>setSubtype<\/code> \u0631\u0648\u06cc\u062f\u0627\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u0641\u0631\u0639\u06cc\u060c \u0628\u0627\u06cc\u062f \u06af\u0648\u0634 \u06a9\u0646\u06cc\u0645 <code>setSubtype<\/code> \u0631\u0648\u06cc\u062f\u0627\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">InputMethodSubtype<\/span><span class=\"p\">,<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">,<\/span> <span class=\"nx\">inputMethod<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.IMEKit<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">KeyboardController<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">async<\/span> <span class=\"nf\">handleSubtypeChange<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">panel<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">Panel<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">InputMethodAbility<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nf\">getInputMethodAbility<\/span><span class=\"p\">();<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">setSubtype<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">inputMethodSubtype<\/span><span class=\"p\">:<\/span> <span class=\"nx\">InputMethodSubtype<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">inputMethodSubtype<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">InputMethodExtAbility<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">setUiContent<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">pages\/Index<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">inputMethodSubtype<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">InputMethodExtAbility1<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">setUiContent<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">pages\/Index1<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"3_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%88_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D8%AA%D8%A7%D8%A8%D8%B9_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A8%D9%84%D8%A7%D8%AF%D8%B1%D9%86%DA%AF\"><\/span>\n<p>  3. \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0698\u0648\u0644 \u062a\u0627\u0628\u0639 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%A7%D8%B2_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D9%86%D8%A7%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D9%87%D8%A7%DB%8C_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  (1) \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0645\u062a\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u06cc\u06a9 \u06a9\u0627\u0631 \u062a\u0631\u062c\u0645\u0647 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0645\u062a\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u0645\u06cc \u0641\u0631\u0633\u062a\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u06a9\u0627\u0631 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>Promise<\/code>\uff09\uff1a\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">translateText<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">):<\/span> <span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Promise<\/span><span class=\"p\">((<\/span><span class=\"nx\">resolve<\/span><span class=\"p\">,<\/span> <span class=\"nx\">reject<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ \u8fd9\u91cc\u6a21\u62df\u4e00\u4e2a\u5f02\u6b65\u7ffb\u8bd1\u64cd\u4f5c\uff0c\u5b9e\u9645\u5e94\u7528\u4e2d\u5e94\u8c03\u7528\u771f\u5b9e\u7684\u7ffb\u8bd1API<\/span>\n    <span class=\"nf\">setTimeout<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nf\">resolve<\/span><span class=\"p\">(<\/span><span class=\"s2\">`\u7ffb\u8bd1\u7ed3\u679c: <\/span><span class=\"p\">${<\/span><span class=\"nx\">text<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">},<\/span> <span class=\"mi\">1000<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"2_API_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C_%D9%85%D8%AA%D9%82%D8%A7%D8%A8%D9%84_%D8%B1%D8%A7_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  (2) API \u062a\u0631\u062c\u0645\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Hongmeng\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc API \u062a\u0631\u062c\u0645\u0647 \u0628\u0627\u06cc\u062f \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 (\u0645\u0627\u0646\u0646\u062f <code>Ability<\/code> \u0627\u0631\u062a\u0628\u0627\u0637) \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647. \u062f\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a (\u0628\u0627 \u0641\u0631\u0636 \u0627\u06cc\u0646\u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u0627\u0633\u062a <code>ServiceAbility<\/code>\uff09\uff1a\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">FeatureAbility<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ohos.ability.featureAbility<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">callTranslationService<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">):<\/span> <span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">want<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">bundleName<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">com.example.translation<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">abilityName<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">TranslationServiceAbility<\/span><span class=\"dl\">'<\/span>\n  <span class=\"p\">};<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">FeatureAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">callAbility<\/span><span class=\"p\">(<\/span><span class=\"nx\">want<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">text<\/span> <span class=\"p\">});<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">result<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\u7ffb\u8bd1\u670d\u52a1\u8c03\u7528\u5931\u8d25:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"dl\">''<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"3_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%B1%D8%A7_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF_%D9%88_%D8%A8%D9%87_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%A8%D8%A7%D8%B2%DA%AF%D8%B1%D8%AF%DB%8C%D8%AF\"><\/span>\n<p>  (3) \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062a\u0631\u062c\u0645\u0647 \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u06a9\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u062a\u0645\u0627\u0633 \u06cc\u0627 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u062f\u0631 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0628\u0627\u06cc\u062f \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"nf\">callTranslationService<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Hello<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nf\">then<\/span><span class=\"p\">((<\/span><span class=\"nx\">result<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\u7ffb\u8bd1\u7ed3\u679c:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">result<\/span><span class=\"p\">);<\/span>\n  <span class=\"c1\">\/\/ \u5728\u8f93\u5165\u754c\u9762\u663e\u793a\u7ffb\u8bd1\u7ed3\u679c<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"4_%D8%B3%D8%A7%D8%B2%DA%AF%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D9%88_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AE%D8%B7%D8%A7\"><\/span>\n<p>  4. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D8%B4%D8%A8%DA%A9%D9%87_%D8%AF%D8%B1_%D8%B7%D9%88%D9%84_%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4_%D8%AA%D8%B1%D8%AC%D9%85%D9%87\"><\/span>\n<p>  (1) \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0628\u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0631\u062c\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0631\u062c\u0645\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0628\u06a9\u0647 \u06cc\u0627 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0648\u062f\u0646 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u06cc\u062f. \u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627\u06cc \u062f\u0648\u0633\u062a\u0627\u0646\u0647 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"nf\">callTranslationService<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Hello<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"k\">catch<\/span><span class=\"p\">((<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\u7ffb\u8bd1\u5931\u8d25:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n  <span class=\"c1\">\/\/ \u663e\u793a\u9519\u8bef\u63d0\u793a\u7ed9\u7528\u6237\uff0c\u5982\u5f39\u51fa\u5bf9\u8bdd\u6846\u63d0\u793a\u201c\u7ffb\u8bd1\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u201d<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D8%AD%D8%A7%D8%B5%D9%84_%DA%A9%D9%86%DB%8C%D8%AF_%DA%A9%D9%87_%D9%85%D8%AA%D9%86_%D9%88%D8%A7%D8%B1%D8%AF_%D8%B4%D8%AF%D9%87_%D8%AA%D9%88%D8%B3%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1_%D9%88_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%D8%AA%D8%B1%D8%AC%D9%85%D9%87_%D8%A8%D9%87_%D8%B7%D9%88%D8%B1_%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86_%D9%86%D9%85%D8%A7%DB%8C%D8%B4_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%D8%B4%D9%88%D9%86%D8%AF\"><\/span>\n<p>  (2) \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0646\u062a\u06cc\u062c\u0647 \u062a\u0631\u062c\u0645\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u062a\u0646 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0627 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0627\u06cc\u062f \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0645\u0646\u0627\u0633\u0628 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u06af\u0634\u062a \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647\u060c \u0646\u062a\u0627\u06cc\u062c \u062f\u0631 \u06a9\u0646\u0627\u0631 \u06a9\u0627\u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u0634\u062f\u0647 \u0628\u0647 \u0645\u0648\u0642\u0639 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0633\u0631\u062f\u0631\u06af\u0645\u06cc \u0646\u0645\u0627\u06cc\u0634\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0634\u0631\u0627\u06cc\u0637\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0647 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0645\u062a\u0646 \u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0631\u062c\u0645\u0647 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"5_%D9%86%D9%85%D9%88%D9%86%D9%87_%DA%A9%D8%AF_%D9%88_%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  5. \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0648 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%DA%A9%D8%AF_%D9%86%D9%85%D9%88%D9%86%D9%87\"><\/span>\n<p>  (1) \u06a9\u062f \u0646\u0645\u0648\u0646\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0632\u06cc\u0631 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0633\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ InputMethodService.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Want<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.AbilityKit<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">keyboardController<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/model\/KeyboardController<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">InputMethodExtensionAbility<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.IMEKit<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">InputDemoService<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">InputMethodExtensionAbility<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">onCreate<\/span><span class=\"p\">(<\/span><span class=\"nx\">want<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Want<\/span><span class=\"p\">):<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">keyboardController<\/span><span class=\"p\">.<\/span><span class=\"nf\">onCreate<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">context<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nf\">onDestroy<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">keyboardController<\/span><span class=\"p\">.<\/span><span class=\"nf\">onDestroy<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ KeyboardController.ts<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">display<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.ArkUT<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">,<\/span> <span class=\"nx\">InputMethodExtensionContext<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@kit.IMEKit<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">InputMethodAbility<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nf\">getInputMethodAbility<\/span><span class=\"p\">();<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">KeyboardController<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">mContext<\/span><span class=\"p\">:<\/span> <span class=\"nx\">InputMethodExtensionContext<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">undefined<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">panel<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">Panel<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">undefined<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">textInputClient<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">InputClient<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">undefined<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">keyboardController<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">KeyboardController<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">undefined<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nf\">constructor<\/span><span class=\"p\">()<\/span> <span class=\"p\">{}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"nf\">onCreate<\/span><span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">:<\/span> <span class=\"nx\">InputMethodExtensionContext<\/span><span class=\"p\">):<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">mContext<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">context<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">initWindow<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">registerListener<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"nf\">onDestroy<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">unRegisterListener<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">hide<\/span><span class=\"p\">();<\/span>\n      <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">destroyPanel<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">mContext<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">mContext<\/span><span class=\"p\">.<\/span><span class=\"nf\">destroy<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"nf\">insertText<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">):<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">textInputClient<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">textInputClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">insertText<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">);<\/span>\n      <span class=\"c1\">\/\/ \u89e6\u53d1\u7ffb\u8bd1\u4efb\u52a1<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">translateText<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">public<\/span> <span class=\"nf\">deleteForward<\/span><span class=\"p\">(<\/span><span class=\"nx\">length<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">):<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">textInputClient<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">textInputClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">deleteForward<\/span><span class=\"p\">(<\/span><span class=\"nx\">length<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"nf\">initWindow<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">mContext<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">return<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">dis<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">display<\/span><span class=\"p\">.<\/span><span class=\"nf\">getDefaultDisplaySync<\/span><span class=\"p\">();<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">dWidth<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">dis<\/span><span class=\"p\">.<\/span><span class=\"nx\">width<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">dHeight<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">dis<\/span><span class=\"p\">.<\/span><span class=\"nx\">height<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">keyHeightRate<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.47<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">keyHeight<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">dHeight<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">keyHeightRate<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">nonBarPosition<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">dHeight<\/span> <span class=\"o\">-<\/span> <span class=\"nx\">keyHeight<\/span><span class=\"p\">;<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"na\">panelInfo<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">PanelInfo<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">PanelType<\/span><span class=\"p\">.<\/span><span class=\"nx\">SOFT_KEYBOARD<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">flag<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">PanelFlag<\/span><span class=\"p\">.<\/span><span class=\"nx\">FLG_FIXED<\/span>\n    <span class=\"p\">};<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">createPanel<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">mContext<\/span><span class=\"p\">,<\/span> <span class=\"nx\">panelInfo<\/span><span class=\"p\">).<\/span><span class=\"nf\">then<\/span><span class=\"p\">(<\/span><span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"na\">inputPanel<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethodEngine<\/span><span class=\"p\">.<\/span><span class=\"nx\">Panel<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputPanel<\/span><span class=\"p\">;<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">resize<\/span><span class=\"p\">(<\/span><span class=\"nx\">dWidth<\/span><span class=\"p\">,<\/span> <span class=\"nx\">keyHeight<\/span><span class=\"p\">);<\/span>\n        <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">moveTo<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nx\">nonBarPosition<\/span><span class=\"p\">);<\/span>\n        <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">panel<\/span><span class=\"p\">.<\/span><span class=\"nf\">setUiContent<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">InputMethodExtensionAbility\/pages\/Index<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"nf\">registerListener<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">registerInputListener<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"nf\">registerInputListener<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">inputStart<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">kbController<\/span><span class=\"p\">,<\/span> <span class=\"nx\">textInputClient<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">textInputClient<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">textInputClient<\/span><span class=\"p\">;<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">keyboardController<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">kbController<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">});<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">inputStop<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">onDestroy<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"nf\">unRegisterListener<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">off<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">inputStart<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">inputMethodAbility<\/span><span class=\"p\">.<\/span><span class=\"nf\">off<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">inputStop<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"k\">async<\/span> <span class=\"nf\">translateText<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">):<\/span> <span class=\"nb\">Promise<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">void<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kd\">let<\/span> <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">callTranslationService<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">);<\/span>\n      <span class=\"c1\">\/\/ \u5904\u7406\u7ffb\u8bd1\u7ed3\u679c\u5e76\u663e\u793a<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\u7ffb\u8bd1\u7ed3\u679c:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">result<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">\u7ffb\u8bd1\u5931\u8d25:<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">keyboardController<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">KeyboardController<\/span><span class=\"p\">();<\/span>\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">keyboardController<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"2_%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  (2) \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0634\u06a9\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\u0633\u0637\u062d<\/th>\n<th>\u0634\u0631\u062d \u0639\u0645\u0644\u06a9\u0631\u062f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0644\u0627\u06cc\u0647 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc<\/td>\n<td>\u0646\u0645\u0627\u06cc\u0634 \u0637\u0631\u062d\u200c\u0628\u0646\u062f\u06cc \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0628\u0647 \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647.<\/td>\n<\/tr>\n<tr>\n<td>\u0644\u0627\u06cc\u0647 \u0647\u0633\u062a\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<\/td>\n<td>\u0648\u0636\u0639\u06cc\u062a \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f\u060c \u0628\u0627 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0631\u0627\u0628\u0637 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f.<\/td>\n<\/tr>\n<tr>\n<td>\u0644\u0627\u06cc\u0647 \u062e\u062f\u0645\u0627\u062a \u062a\u0631\u062c\u0645\u0647<\/td>\n<td>\u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0645\u062a\u0646 \u0628\u0627 API \u062a\u0631\u062c\u0645\u0647 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0646\u062a\u0627\u06cc\u062c \u062a\u0631\u062c\u0645\u0647 \u0631\u0627 \u0628\u0647 \u0644\u0627\u06cc\u0647 \u0627\u0635\u0644\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0627\u0632 \u0637\u0631\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0648\u0642\u060c \u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u06a9\u0647 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062a\u0631\u062c\u0645\u0647 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647\u06cc\u0646\u0647 \u06a9\u0631\u062f\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0632\u0628\u0627\u0646 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u062a\u0648\u0627\u0646\u062f \u0645\u0631\u062c\u0639 \u0648 \u0645\u0631\u062c\u0639 \u0645\u0641\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0633\u06cc\u0633\u062a\u0645 Hongmeng \u0628\u0627\u0634\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u0647 \u0648 \u062e\u0644\u0627\u0635\u0647 \u06a9\u0631\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0627\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u0627\u0648\u0631\u06cc\u060c \u0627\u0634\u062a\u0628\u0627\u0647\u0627\u062a \u0648 \u062d\u0630\u0641\u06cc\u0627\u062a \u0627\u062c\u062a\u0646\u0627\u0628 \u0646\u0627\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0638\u0631\u0627\u062a \u0648 \u0633\u0648\u0627\u0644\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":83218,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-83217","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/83217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=83217"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/83217\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/83218"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=83217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=83217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=83217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}