{"id":83229,"date":"2024-11-10T09:21:42","date_gmt":"2024-11-10T05:51:42","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/"},"modified":"2024-11-10T09:21:42","modified_gmt":"2024-11-10T05:51:42","slug":"harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/","title":{"rendered":"\u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc HarmonyOS \u0648 Sandbox \u0645\u0634\u062a\u0631\u06a9: \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062a\u0639\u0627\u0645\u0644\u06cc \u0648 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u062c\u0632\u0626\u06cc\u0627\u062a \u0641\u0646\u06cc \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc sandbox \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0627\u0633\u062a \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062d\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u06cc \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u0637\u0627\u0647\u0627 \u0648 \u062d\u0630\u0641\u06cc\u0627\u062a \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u0647\u0645\u06a9\u0627\u0631\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \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\u0634\u062a\u0631\u06a9 \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. \u0647\u0631 \u0646\u0648\u0639 \u062a\u062c\u062f\u06cc\u062f \u0686\u0627\u067e \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 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062f\u0631\u0646\u060c \u062a\u0642\u0627\u0636\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u06cc\u0627\u062a \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634\u060c \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0645\u0624\u062b\u0631 \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0648 \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062a\u0627 \u062d\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0635\u0644 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Huawei HarmonyOS Next (API 12) \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u062a\u0627 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627\u060c \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u062f\u0633\u062a \u06cc\u0627\u0628\u062f. \u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc \u06a9\u0644\u06cc\u062f\u06cc\u060c \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>  I. \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>  (I) \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u062c\u0639\u0628\u0647 \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062f\u0627\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u0627\u0646\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u062d\u0630\u0641 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u0628\u0627\u0634\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0639\u0627\u062f\u0627\u062a \u0634\u062e\u0635\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u0648 \u0631\u0646\u06af \u0641\u0648\u0646\u062a\u060c \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u062f\u0627\u0648\u0645 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u0648 \u062b\u0627\u0628\u062a \u0628\u0645\u0627\u0646\u0646\u062f.<\/p>\n<p>  (II) \u0646\u0642\u0634 Sandbox \u0645\u0634\u062a\u0631\u06a9<\/p>\n<p>\u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0646\u0642\u0634 \u0645\u0647\u0645\u06cc \u0627\u06cc\u0641\u0627 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0645\u06cc\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0634\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0628\u06a9 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u062a\u0627\u0631\u06cc\u062e\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062b\u0627\u0628\u062a \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u0646\u062f.<\/p>\n<p>  (III) \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>\u0645\u0627 \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647\u060c \u0644\u0627\u06cc\u0647 sandbox \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a. \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647 \u0645\u0633\u0626\u0648\u0644 \u0627\u0631\u0627\u0626\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u0648 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062c\u0639\u0628\u0647 \u0645\u0627\u0633\u0647\u200c\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0648 \u0630\u062e\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0627\u06cc\u0647 sandbox \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0647 \u0634\u062f\u0647 \u0645\u0633\u0626\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u062f\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 (\u0645\u0627\u0646\u0646\u062f \u0633\u0627\u0628\u0642\u0647 \u0648\u0631\u0648\u062f\u06cc) \u0631\u0627 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  II. \u0637\u0631\u0627\u062d\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u06cc\u0646 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<\/p>\n<p>  (I) \u0627\u062c\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0648 \u062d\u0630\u0641 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>\u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u062c\u0639\u0628\u0647 \u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0645\u0627 \u0627\u0632 Text \u062c\u0632\u0621 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0644\u0641\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u062a\u0646 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062a\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062d\u0627\u0644\u062a. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0648 \u062d\u0630\u0641\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 InputMethodController. \u06a9\u062f \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>import { inputMethod } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>@Component<br \/>\nexport struct CustomInput {<br \/>\n  @State inputText: string = &#8220;&#8221;;<br \/>\n  private isAttach: boolean = false;<br \/>\n  private inputController: inputMethod.InputMethodController = inputMethod.getController();<\/p>\n<p>  build() {<br \/>\n    Text(this.inputText)<br \/>\n   .fontSize(16)<br \/>\n   .width(&#8216;100%&#8217;)<br \/>\n   .lineHeight(40)<br \/>\n   .id(&#8216;customInput&#8217;)<br \/>\n   .onBlur(() =&gt; {<br \/>\n        this.off();<br \/>\n      })<br \/>\n   .height(45)<br \/>\n   .border({ color: &#8216;#554455&#8217;, radius: 30, width: 1 })<br \/>\n   .maxLines(1)<br \/>\n   .onClick(() =&gt; {<br \/>\n        this.attachAndListener();<br \/>\n      });<br \/>\n  }<\/p>\n<p>  async attachAndListener() {<br \/>\n    focusControl.requestFocus(&#8216;CustomInput&#8217;);<br \/>\n    await this.inputController.attach(true, {<br \/>\n      inputAttribute: {<br \/>\n        textInputType: inputMethod.TextInputType.TEXT,<br \/>\n        enterKeyType: inputMethod.EnterKeyType.SEARCH<br \/>\n      }<br \/>\n    });<br \/>\n    if (!this.isAttach) {<br \/>\n      this.inputController.on(&#8216;insertText&#8217;, (text) =&gt; {<br \/>\n        this.inputText += text;<br \/>\n      });<br \/>\n      this.inputController.on(&#8216;deleteLeft&#8217;, (length) =&gt; {<br \/>\n        this.inputText = this.inputText.substring(0, this.inputText.length &#8211; length);<br \/>\n      });<br \/>\n      this.isAttach = true;<br \/>\n    }<br \/>\n  }<\/p>\n<p>  off() {<br \/>\n    this.isAttach = false;<br \/>\n    this.inputController.off(&#8216;insertText&#8217;);<br \/>\n    this.inputController.off(&#8216;deleteLeft&#8217;);<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  (II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 InputMethodController \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u067e\u0627\u0633\u062e \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc<\/p>\n<p>\u0628\u0627 \u062a\u0645\u0627\u0633 \u0628\u0627 attach \u0631\u0648\u0634 \u0627\u0632 InputMethodController\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645. \u067e\u0633 \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0646 \u0635\u062d\u0627\u0641\u06cc\u060c \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u067e\u0627\u0633\u062e \u062f\u0647\u062f \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0648\u0639 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0646\u0648\u0639 \u06a9\u0644\u06cc\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  III. \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 Sandbox \u0645\u0634\u062a\u0631\u06a9<\/p>\n<p>  (I) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc data-group-ids \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 Sandbox \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc \u06af\u0630\u0627\u0631\u0646\u062f<\/p>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f data-group-ids \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 profile \u0641\u0627\u06cc\u0644 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u062f\u0631 module.json5 \u0641\u0627\u06cc\u0644 \u06a9\u062c\u0627 InputMethodExtensionAbility \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u062c\u0648\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0631\u0627\u06cc \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a (\u0628\u0627 \u0641\u0631\u0636 data-group-ids \u0627\u0633\u062a &#8220;myDataGroup&#8221;):<\/p>\n<p>\u062f\u0631 profile \u0641\u0627\u06cc\u0644:<\/p>\n<p>{<br \/>\n  &#8220;app&#8221;: {<br \/>\n    &#8220;data-group-ids&#8221;: [&#8220;myDataGroup&#8221;]\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 module.json5 \u0641\u0627\u06cc\u0644:<\/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        ],<br \/>\n        &#8220;dataGroupIds&#8221;: [&#8220;myDataGroup&#8221;]\n      }<br \/>\n    ]\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  (II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 getGroupDir \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646 \u0628\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u0633\u0627\u0628\u0642\u0647<\/p>\n<p>\u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 getGroupDir \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0645\u0633\u06cc\u0631 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0648 \u0633\u067e\u0633 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0648 \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0627\u06cc\u0644. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 (\u0645\u0627\u0646\u0646\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u0641\u0648\u0646\u062a\u060c \u0631\u0646\u06af \u0648 \u063a\u06cc\u0631\u0647) \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u0645 \u0648 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u060c \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u0645. \u0645\u062b\u0627\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634:<\/p>\n<p>import { inputMethod } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>\/\/ Obtain the path of the shared sandbox<br \/>\nlet groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\nlet configPath = `${groupDir}\/editor_config.json`;<\/p>\n<p>\/\/ Save edit box settings<br \/>\nfunction saveEditorSettings(settings: any) {<br \/>\n  try {<br \/>\n    fs.writeFileSync(configPath, JSON.stringify(settings));<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to save settings:&#8217;, error);<br \/>\n  }<br \/>\n}<\/p>\n<p>\/\/ Read edit box settings<br \/>\nfunction loadEditorSettings(): any {<br \/>\n  try {<br \/>\n    let data = fs.readFileSync(configPath);<br \/>\n    return JSON.parse(data);<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to read settings:&#8217;, error);<br \/>\n    return {};<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc:<\/p>\n<p>import { inputMethod } from &#8216;@kit.IMEKit&#8217;;<\/p>\n<p>\/\/ Obtain the path of the shared sandbox<br \/>\nlet groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\nlet historyPath = `${groupDir}\/input_history.json`;<\/p>\n<p>\/\/ Save input history<br \/>\nfunction saveInputHistory(history: string[]) {<br \/>\n  try {<br \/>\n    fs.writeFileSync(historyPath, JSON.stringify(history));<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to save input history:&#8217;, error);<br \/>\n  }<br \/>\n}<\/p>\n<p>\/\/ Read input history<br \/>\nfunction loadInputHistory(): string[] {<br \/>\n  try {<br \/>\n    let data = fs.readFileSync(historyPath);<br \/>\n    return JSON.parse(data);<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to read input history:&#8217;, error);<br \/>\n    return [];<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  IV. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627<\/p>\n<p>  (I) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062a\u0636\u0627\u062f\u0647\u0627 \u0648 \u0645\u0633\u0627\u0626\u0644 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc<\/p>\n<p>\u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0634\u0631\u0627\u06cc\u0637\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u062a\u0636\u0627\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u062d\u0644 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0647\u0627\u06cc \u0642\u0641\u0644 \u06cc\u0627 \u0635\u0641 \u067e\u06cc\u0627\u0645 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0647\u0646\u06af\u0627\u0645 \u0646\u0648\u0634\u062a\u0646 \u0631\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0642\u0641\u0644 \u0628\u06af\u06cc\u0631\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u062a\u0646\u0647\u0627 \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0647\u0645\u0632\u0645\u0627\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.<\/p>\n<p>  (II) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627: \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 \u0648 \u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u062c\u0648\u0632 \u062f\u0627\u062f\u0647 \u0645\u0634\u062a\u0631\u06a9<\/p>\n<p>\u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f\u060c \u0641\u0636\u0627\u06cc \u062f\u06cc\u0633\u06a9 \u06a9\u0627\u0641\u06cc\u060c \u0648 \u063a\u06cc\u0631\u0647. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0645\u0633\u0627\u0626\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062c\u0648\u0632 \u062f\u0627\u062f\u0647 \u0645\u0634\u062a\u0631\u06a9\u060c \u0645\u0627\u0646\u0646\u062f \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u062c\u0648\u0632 \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0631\u0627 \u0646\u062f\u0627\u0631\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0646\u06cc\u0632 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u062b\u0628\u0627\u062a \u0648 \u0627\u0645\u0646\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a.<\/p>\n<p>  V. \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0648 \u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc<\/p>\n<p>  (I) \u06a9\u062f \u0646\u0645\u0648\u0646\u0647<\/p>\n<p>\u062f\u0631 \u0632\u06cc\u0631 \u0646\u0645\u0648\u0646\u0647\u200c\u0627\u06cc \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a:<\/p>\n<p>\/\/ Custom edit box component in the edit box application<br \/>\nimport { inputMethod } from &#8216;@kit.IMEKit&#8217;;<br \/>\nimport fs from &#8216;@ohos.file.fs&#8217;;<\/p>\n<p>@Component<br \/>\nexport struct CustomInput {<br \/>\n  \/\/&#8230; Omitted part of the code<\/p>\n<p>  \/\/ Save edit box settings<br \/>\n  saveSettings() {<br \/>\n    let settings = { fontSize: 16, color: &#8216;#000&#8217; }; \/\/ Assume saving font size and color here<br \/>\n    saveEditorSettings(settings);<br \/>\n  }<\/p>\n<p>  \/\/ Load edit box settings<br \/>\n  loadSettings() {<br \/>\n    let settings = loadEditorSettings();<br \/>\n    if (settings.fontSize) {<br \/>\n      \/\/ Update the style of the edit box such as font size<br \/>\n    }<br \/>\n  }<br \/>\n}<\/p>\n<p>\/\/ Shared sandbox data reading and writing functions<br \/>\nfunction saveEditorSettings(settings: any) {<br \/>\n  let groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\n  let configPath = `${groupDir}\/editor_config.json`;<br \/>\n  try {<br \/>\n    fs.writeFileSync(configPath, JSON.stringify(settings));<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to save settings:&#8217;, error);<br \/>\n  }<br \/>\n}<\/p>\n<p>function loadEditorSettings(): any {<br \/>\n  let groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\n  let configPath = `${groupDir}\/editor_config.json`;<br \/>\n  try {<br \/>\n    let data = fs.readFileSync(configPath);<br \/>\n    return JSON.parse(data);<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to read settings:&#8217;, error);<br \/>\n    return {};<br \/>\n  }<br \/>\n}<\/p>\n<p>\/\/ Saving input history in the input method application<br \/>\nfunction saveInputHistory(history: string[]) {<br \/>\n  let groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\n  let historyPath = `${groupDir}\/input_history.json`;<br \/>\n  try {<br \/>\n    fs.writeFileSync(historyPath, JSON.stringify(history));<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to save input history:&#8217;, error);<br \/>\n  }<br \/>\n}<\/p>\n<p>function loadInputHistory(): string[] {<br \/>\n  let groupDir = inputMethod.getGroupDir(&#8216;myDataGroup&#8217;);<br \/>\n  let historyPath = `${groupDir}\/input_history.json`;<br \/>\n  try {<br \/>\n    let data = fs.readFileSync(historyPath);<br \/>\n    return JSON.parse(data);<br \/>\n  } catch (error) {<br \/>\n    console.error(&#8216;Failed to read input history:&#8217;, error);<br \/>\n    return [];<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  (II) \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 \u0634\u0645\u0627\u062a\u06cc\u06a9 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0644\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc<br \/>\n\u0634\u0631\u062d \u0639\u0645\u0644\u06a9\u0631\u062f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647<br \/>\n\u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0627 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u062a\u0639\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f \u0648 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u062f\u060c \u0648 \u0628\u0627 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. InputMethodController.<\/p>\n<p>\u062c\u0639\u0628\u0647 \u0634\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9<br \/>\n\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0631\u0627\u0628\u0637\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u0631\u0627 \u0645\u062a\u0648\u062c\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u062f \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<br \/>\n\u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u0632 \u0637\u0631\u06cc\u0642 \u0637\u0631\u0627\u062d\u06cc \u0648 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u0648\u0642\u060c \u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u06cc\u0646 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0632 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\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 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u062a\u0631 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u060c \u0648 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \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\u0646\u0627\u0628\u0639 \u0648 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0647\u0627\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 HarmonyOS \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.<\/p>\n<div data-article-id=\"2091302\" id=\"article-body\">\n<blockquote>\n<p>\u0647\u062f\u0641 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0631\u0631\u0633\u06cc \u0639\u0645\u06cc\u0642 \u062c\u0632\u0626\u06cc\u0627\u062a \u0641\u0646\u06cc \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc sandbox \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0627\u0633\u062a \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062d\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u06cc \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u0637\u0627\u0647\u0627 \u0648 \u062d\u0630\u0641\u06cc\u0627\u062a \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u0647\u0645\u06a9\u0627\u0631\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \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\u0634\u062a\u0631\u06a9 \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. \u0647\u0631 \u0646\u0648\u0639 \u062a\u062c\u062f\u06cc\u062f \u0686\u0627\u067e \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 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062f\u0631\u0646\u060c \u062a\u0642\u0627\u0636\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u062a\u062c\u0631\u0628\u06cc\u0627\u062a \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634\u060c \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0645\u0624\u062b\u0631 \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0648 \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062a\u0627 \u062d\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0635\u0644 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 Huawei HarmonyOS Next (API 12) \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u062a\u0627 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627\u060c \u0637\u0631\u0627\u062d\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u062f\u0633\u062a \u06cc\u0627\u0628\u062f. \u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc \u06a9\u0644\u06cc\u062f\u06cc\u060c \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<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 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=\"Toggle Table of Content\"><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\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%D8%AA%D8%AC%D8%B2%DB%8C%D9%87_%D9%88_%D8%AA%D8%AD%D9%84%DB%8C%D9%84_%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C_%D9%87%D8%A7_%D9%88_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D9%84%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >I. \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \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-2\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%D8%A7%D9%84%D8%B2%D8%A7%D9%85%D8%A7%D8%AA_%D8%AC%D8%B9%D8%A8%D9%87_%D8%B1%D8%A7_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%DA%A9%D9%86%DB%8C%D8%AF\" >(I) \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u062c\u0639\u0628\u0647 \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \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-3\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D9%86%D9%82%D8%B4_Sandbox_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\" >(II) \u0646\u0642\u0634 Sandbox \u0645\u0634\u062a\u0631\u06a9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#III_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D9%84%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >(III) \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\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-5\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%AA%D8%B9%D8%A7%D9%85%D9%84_%D8%A8%DB%8C%D9%86_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D9%88_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C\" >II. \u0637\u0631\u0627\u062d\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u06cc\u0646 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_%D8%A8%D8%B1_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D9%88_%D8%AD%D8%B0%D9%81_%D8%AF%D8%B1_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\" >(I) \u0627\u062c\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0648 \u062d\u0630\u0641 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc<\/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\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_InputMethodController_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D9%88_%D9%BE%D8%A7%D8%B3%D8%AE_%D8%A8%D9%87_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%AF%D8%B1_%D8%B2%D9%85%D8%A7%D9%86_%D9%88%D8%A7%D9%82%D8%B9%DB%8C\" >(II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 InputMethodController \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u067e\u0627\u0633\u062e \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc<\/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\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#III_%D8%A8%D9%87_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9_%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D9%88_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1_Sandbox_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\" >III. \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 Sandbox \u0645\u0634\u062a\u0631\u06a9<\/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\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_data-group-ids_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%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_%D9%88_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_Sandbox_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9_%D9%85%DB%8C_%DA%AF%D8%B0%D8%A7%D8%B1%D9%86%D8%AF\" >(I) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc data-group-ids \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 Sandbox \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc \u06af\u0630\u0627\u0631\u0646\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\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_getGroupDir_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%DB%8C%D8%A7%D8%A8%DB%8C_%D8%A8%D9%87_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%88_%D8%A7%D8%AC%D8%A7%D8%B2%D9%87_%D8%AF%D8%A7%D8%AF%D9%86_%D8%A8%D9%87_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D9%88_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9%E2%80%8C%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA_%D9%88_%D8%B3%D8%A7%D8%A8%D9%82%D9%87\" >(II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 getGroupDir \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646 \u0628\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u0633\u0627\u0628\u0642\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#IV_%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%DB%8C_%D8%A8%DB%8C%D9%86_%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%DB%8C_%D9%88_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AE%D8%B7%D8%A7\" >IV. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \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-12\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AA%D8%B6%D8%A7%D8%AF%D9%87%D8%A7_%D9%88_%D9%85%D8%B3%D8%A7%D8%A6%D9%84_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AF%D8%B1_%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7%DB%8C_%D8%A8%DB%8C%D9%86_%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%DB%8C\" >(I) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062a\u0636\u0627\u062f\u0647\u0627 \u0648 \u0645\u0633\u0627\u0626\u0644 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AB%D9%86%D8%A7%D9%87%D8%A7%DB%8C_%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86_%D9%88_%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D9%81%D8%A7%DB%8C%D9%84_%D9%88_%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA_%D9%85%D8%AC%D9%88%D8%B2_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\" >(II) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627: \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 \u0648 \u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u062c\u0648\u0632 \u062f\u0627\u062f\u0647 \u0645\u0634\u062a\u0631\u06a9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#V_%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\" >V. \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-15\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#I_%DA%A9%D8%AF_%D9%86%D9%85%D9%88%D9%86%D9%87\" >(I) \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-16\" href=\"https:\/\/nabfollower.com\/blog\/harmonyos-custom-edit-box-and-shared-sandbox-implementing-interactive-personalized-input-method-and-edit-box-389o\/#II_%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\" >(II) \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=\"I_%D8%AA%D8%AC%D8%B2%DB%8C%D9%87_%D9%88_%D8%AA%D8%AD%D9%84%DB%8C%D9%84_%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF%DB%8C_%D9%87%D8%A7_%D9%88_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D9%84%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  I. \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"I_%D8%A7%D9%84%D8%B2%D8%A7%D9%85%D8%A7%D8%AA_%D8%AC%D8%B9%D8%A8%D9%87_%D8%B1%D8%A7_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  (I) \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u062c\u0639\u0628\u0647 \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06a9\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062f\u0627\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u0627\u0646\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u062d\u0630\u0641 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u0628\u0627\u0634\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0639\u0627\u062f\u0627\u062a \u0634\u062e\u0635\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u0648 \u0631\u0646\u06af \u0641\u0648\u0646\u062a\u060c \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u062f\u0627\u0648\u0645 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u0648 \u062b\u0627\u0628\u062a \u0628\u0645\u0627\u0646\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"II_%D9%86%D9%82%D8%B4_Sandbox_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\"><\/span>\n<p>  (II) \u0646\u0642\u0634 Sandbox \u0645\u0634\u062a\u0631\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0646\u0642\u0634 \u0645\u0647\u0645\u06cc \u0627\u06cc\u0641\u0627 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0645\u06cc\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0634\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0628\u06a9 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u062a\u0627\u0631\u06cc\u062e\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u062b\u0627\u0628\u062a \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"III_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%DA%A9%D9%84%DB%8C_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  (III) \u0637\u0631\u0627\u062d\u06cc \u06a9\u0644\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u0627 \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0637\u0631\u0627\u062d\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647\u060c \u0644\u0627\u06cc\u0647 sandbox \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u0648 \u0644\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a. \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647 \u0645\u0633\u0626\u0648\u0644 \u0627\u0631\u0627\u0626\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u0648 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062c\u0639\u0628\u0647 \u0645\u0627\u0633\u0647\u200c\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0648 \u0630\u062e\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0627\u06cc\u0647 sandbox \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0647 \u0634\u062f\u0647 \u0645\u0633\u0626\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u062f\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u0644\u0627\u06cc\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 (\u0645\u0627\u0646\u0646\u062f \u0633\u0627\u0628\u0642\u0647 \u0648\u0631\u0648\u062f\u06cc) \u0631\u0627 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"II_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%AA%D8%B9%D8%A7%D9%85%D9%84_%D8%A8%DB%8C%D9%86_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D9%88_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C\"><\/span>\n<p>  II. \u0637\u0631\u0627\u062d\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u06cc\u0646 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"I_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_%D8%A8%D8%B1_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D9%88_%D8%AD%D8%B0%D9%81_%D8%AF%D8%B1_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\"><\/span>\n<p>  (I) \u0627\u062c\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0648 \u062d\u0630\u0641 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u062c\u0639\u0628\u0647 \u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0645\u0627 \u0627\u0632 <code>Text<\/code> \u062c\u0632\u0621 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0644\u0641\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u062a\u0646 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u062a\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u062d\u0627\u0644\u062a. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0648 \u062d\u0630\u0641\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 <code>InputMethodController<\/code>. \u06a9\u062f \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a:<\/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\">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=\"p\">@<\/span><span class=\"nd\">Component<\/span>\n<span class=\"k\">export<\/span> <span class=\"nx\">struct<\/span> <span class=\"nx\">CustomInput<\/span> <span class=\"p\">{<\/span>\n  <span class=\"p\">@<\/span><span class=\"nd\">State<\/span> <span class=\"nx\">inputText<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">isAttach<\/span><span class=\"p\">:<\/span> <span class=\"nx\">boolean<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">inputController<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nx\">InputMethodController<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getController<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"nf\">build<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nc\">Text<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputText<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">fontSize<\/span><span class=\"p\">(<\/span><span class=\"mi\">16<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">width<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">100%<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">lineHeight<\/span><span class=\"p\">(<\/span><span class=\"mi\">40<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">id<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">customInput<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">onBlur<\/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\">off<\/span><span class=\"p\">();<\/span>\n      <span class=\"p\">})<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">height<\/span><span class=\"p\">(<\/span><span class=\"mi\">45<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">border<\/span><span class=\"p\">({<\/span> <span class=\"na\">color<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#554455<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">radius<\/span><span class=\"p\">:<\/span> <span class=\"mi\">30<\/span><span class=\"p\">,<\/span> <span class=\"na\">width<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span> <span class=\"p\">})<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">maxLines<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n   <span class=\"p\">.<\/span><span class=\"nf\">onClick<\/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\">attachAndListener<\/span><span class=\"p\">();<\/span>\n      <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">async<\/span> <span class=\"nf\">attachAndListener<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">focusControl<\/span><span class=\"p\">.<\/span><span class=\"nf\">requestFocus<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">CustomInput<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputController<\/span><span class=\"p\">.<\/span><span class=\"nf\">attach<\/span><span class=\"p\">(<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">inputAttribute<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">textInputType<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nx\">TextInputType<\/span><span class=\"p\">.<\/span><span class=\"nx\">TEXT<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">enterKeyType<\/span><span class=\"p\">:<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nx\">EnterKeyType<\/span><span class=\"p\">.<\/span><span class=\"nx\">SEARCH<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">});<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">isAttach<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputController<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">insertText<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">text<\/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\">inputText<\/span> <span class=\"o\">+=<\/span> <span class=\"nx\">text<\/span><span class=\"p\">;<\/span>\n      <span class=\"p\">});<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputController<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">deleteLeft<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">length<\/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\">inputText<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputText<\/span><span class=\"p\">.<\/span><span class=\"nf\">substring<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputText<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span> <span class=\"o\">-<\/span> <span class=\"nx\">length<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">});<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">isAttach<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nf\">off<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">isAttach<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputController<\/span><span class=\"p\">.<\/span><span class=\"nf\">off<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">insertText<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">inputController<\/span><span class=\"p\">.<\/span><span class=\"nf\">off<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">deleteLeft<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"II_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_InputMethodController_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D9%88_%D9%BE%D8%A7%D8%B3%D8%AE_%D8%A8%D9%87_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%AF%D8%B1_%D8%B2%D9%85%D8%A7%D9%86_%D9%88%D8%A7%D9%82%D8%B9%DB%8C\"><\/span>\n<p>  (II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>InputMethodController<\/code> \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u067e\u0627\u0633\u062e \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0627 \u062a\u0645\u0627\u0633 \u0628\u0627 <code>attach<\/code> \u0631\u0648\u0634 \u0627\u0632 <code>InputMethodController<\/code>\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645. \u067e\u0633 \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0646 \u0635\u062d\u0627\u0641\u06cc\u060c \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0635\u0648\u0631\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u067e\u0627\u0633\u062e \u062f\u0647\u062f \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u062f. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0648\u0639 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0646\u0648\u0639 \u06a9\u0644\u06cc\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"III_%D8%A8%D9%87_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9_%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7_%D9%88_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1_Sandbox_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\"><\/span>\n<p>  III. \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 Sandbox \u0645\u0634\u062a\u0631\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"I_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_data-group-ids_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D8%A7%D8%B2_%D8%A7%DB%8C%D9%86%DA%A9%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_%D9%88_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_Sandbox_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9_%D9%85%DB%8C_%DA%AF%D8%B0%D8%A7%D8%B1%D9%86%D8%AF\"><\/span>\n<p>  (I) \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc <code>data-group-ids<\/code> \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 Sandbox \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc \u06af\u0630\u0627\u0631\u0646\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f <code>data-group-ids<\/code> \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 <code>profile<\/code> \u0641\u0627\u06cc\u0644 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u062f\u0631 <code>module.json5<\/code> \u0641\u0627\u06cc\u0644 \u06a9\u062c\u0627 <code>InputMethodExtensionAbility<\/code> \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u062c\u0648\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0631\u0627\u06cc \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a (\u0628\u0627 \u0641\u0631\u0636 <code>data-group-ids<\/code> \u0627\u0633\u062a <code>\"myDataGroup\"<\/code>):<\/p>\n<p>\u062f\u0631 <code>profile<\/code> \u0641\u0627\u06cc\u0644:<\/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\">\"app\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"data-group-ids\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"s2\">\"myDataGroup\"<\/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 class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 <code>module.json5<\/code> \u0641\u0627\u06cc\u0644:<\/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=\"nl\">\"dataGroupIds\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"s2\">\"myDataGroup\"<\/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><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"II_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_getGroupDir_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%DB%8C%D8%A7%D8%A8%DB%8C_%D8%A8%D9%87_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1%DB%8C_%D8%AF%D8%A7%D8%AF%D9%87_%D9%88_%D8%A7%D8%AC%D8%A7%D8%B2%D9%87_%D8%AF%D8%A7%D8%AF%D9%86_%D8%A8%D9%87_%D8%AC%D8%B9%D8%A8%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%D9%88_%D8%B1%D9%88%D8%B4_%D9%88%D8%B1%D9%88%D8%AF%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9%E2%80%8C%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA_%D9%88_%D8%B3%D8%A7%D8%A8%D9%82%D9%87\"><\/span>\n<p>  (II) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>getGroupDir<\/code> \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646 \u0628\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u0633\u0627\u0628\u0642\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 <code>getGroupDir<\/code> \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0645\u0633\u06cc\u0631 \u0633\u0646\u062f\u0628\u0627\u06a9\u0633 \u0645\u0634\u062a\u0631\u06a9\u060c \u0648 \u0633\u067e\u0633 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0648 \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0627\u06cc\u0644. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u06a9\u0627\u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 (\u0645\u0627\u0646\u0646\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u0641\u0648\u0646\u062a\u060c \u0631\u0646\u06af \u0648 \u063a\u06cc\u0631\u0647) \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u0645 \u0648 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u060c \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u0645. \u0645\u062b\u0627\u0644 \u0632\u06cc\u0631 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0632 \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634:<\/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\">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=\"c1\">\/\/ Obtain the path of the shared sandbox<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">configPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/editor_config.json`<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Save edit box settings<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">saveEditorSettings<\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">configPath<\/span><span class=\"p\">,<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/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\">Failed to save settings:<\/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\n<span class=\"c1\">\/\/ Read edit box settings<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">loadEditorSettings<\/span><span class=\"p\">():<\/span> <span class=\"kr\">any<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">readFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">configPath<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/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\">Failed to read settings:<\/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=\"p\">{};<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc:<\/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\">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=\"c1\">\/\/ Obtain the path of the shared sandbox<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">historyPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/input_history.json`<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Save input history<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">saveInputHistory<\/span><span class=\"p\">(<\/span><span class=\"nx\">history<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">[])<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">historyPath<\/span><span class=\"p\">,<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">history<\/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\">Failed to save input history:<\/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\n<span class=\"c1\">\/\/ Read input history<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">loadInputHistory<\/span><span class=\"p\">():<\/span> <span class=\"kr\">string<\/span><span class=\"p\">[]<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">readFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">historyPath<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/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\">Failed to read input history:<\/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=\"p\">[];<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"IV_%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%DB%8C_%D8%A8%DB%8C%D9%86_%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%DB%8C_%D9%88_%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D8%AE%D8%B7%D8%A7\"><\/span>\n<p>  IV. \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \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=\"I_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AA%D8%B6%D8%A7%D8%AF%D9%87%D8%A7_%D9%88_%D9%85%D8%B3%D8%A7%D8%A6%D9%84_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AF%D8%B1_%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7%DB%8C_%D8%A8%DB%8C%D9%86_%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%DB%8C\"><\/span>\n<p>  (I) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062a\u0636\u0627\u062f\u0647\u0627 \u0648 \u0645\u0633\u0627\u0626\u0644 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0634\u0631\u0627\u06cc\u0637\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06a9\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u062a\u0636\u0627\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u062d\u0644 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0647\u0627\u06cc \u0642\u0641\u0644 \u06cc\u0627 \u0635\u0641 \u067e\u06cc\u0627\u0645 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0647\u0646\u06af\u0627\u0645 \u0646\u0648\u0634\u062a\u0646 \u0631\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0642\u0641\u0644 \u0628\u06af\u06cc\u0631\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u062a\u0646\u0647\u0627 \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0647\u0645\u0632\u0645\u0627\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"II_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AB%D9%86%D8%A7%D9%87%D8%A7%DB%8C_%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86_%D9%88_%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D9%81%D8%A7%DB%8C%D9%84_%D9%88_%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA_%D9%85%D8%AC%D9%88%D8%B2_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%B4%D8%AA%D8%B1%DA%A9\"><\/span>\n<p>  (II) \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627: \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 \u0648 \u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u062c\u0648\u0632 \u062f\u0627\u062f\u0647 \u0645\u0634\u062a\u0631\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0637\u0648\u0644 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u0627\u0646\u062f\u06af\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f\u060c \u0641\u0636\u0627\u06cc \u062f\u06cc\u0633\u06a9 \u06a9\u0627\u0641\u06cc\u060c \u0648 \u063a\u06cc\u0631\u0647. \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644\u060c \u0628\u0631\u0627\u06cc \u0645\u0633\u0627\u0626\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062c\u0648\u0632 \u062f\u0627\u062f\u0647 \u0645\u0634\u062a\u0631\u06a9\u060c \u0645\u0627\u0646\u0646\u062f \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u062c\u0648\u0632 \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0631\u0627 \u0646\u062f\u0627\u0631\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0646\u06cc\u0632 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u062b\u0628\u0627\u062a \u0648 \u0627\u0645\u0646\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"V_%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>  V. \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=\"I_%DA%A9%D8%AF_%D9%86%D9%85%D9%88%D9%86%D9%87\"><\/span>\n<p>  (I) \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\u200c\u0627\u06cc \u0627\u0632 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ Custom edit box component in the edit box application<\/span>\n<span class=\"k\">import<\/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<span class=\"k\">import<\/span> <span class=\"nx\">fs<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">@ohos.file.fs<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"p\">@<\/span><span class=\"nd\">Component<\/span>\n<span class=\"k\">export<\/span> <span class=\"nx\">struct<\/span> <span class=\"nx\">CustomInput<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/... Omitted part of the code<\/span>\n\n  <span class=\"c1\">\/\/ Save edit box settings<\/span>\n  <span class=\"nf\">saveSettings<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">settings<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">fontSize<\/span><span class=\"p\">:<\/span> <span class=\"mi\">16<\/span><span class=\"p\">,<\/span> <span class=\"na\">color<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#000<\/span><span class=\"dl\">'<\/span> <span class=\"p\">};<\/span> <span class=\"c1\">\/\/ Assume saving font size and color here<\/span>\n    <span class=\"nf\">saveEditorSettings<\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"c1\">\/\/ Load edit box settings<\/span>\n  <span class=\"nf\">loadSettings<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">settings<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">loadEditorSettings<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/span><span class=\"p\">.<\/span><span class=\"nx\">fontSize<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"c1\">\/\/ Update the style of the edit box such as font size<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Shared sandbox data reading and writing functions<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">saveEditorSettings<\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">configPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/editor_config.json`<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">configPath<\/span><span class=\"p\">,<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">settings<\/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\">Failed to save settings:<\/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\n<span class=\"kd\">function<\/span> <span class=\"nf\">loadEditorSettings<\/span><span class=\"p\">():<\/span> <span class=\"kr\">any<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">configPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/editor_config.json`<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">readFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">configPath<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/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\">Failed to read settings:<\/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=\"p\">{};<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Saving input history in the input method application<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">saveInputHistory<\/span><span class=\"p\">(<\/span><span class=\"nx\">history<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">[])<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">historyPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/input_history.json`<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">writeFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">historyPath<\/span><span class=\"p\">,<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">history<\/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\">Failed to save input history:<\/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\n<span class=\"kd\">function<\/span> <span class=\"nf\">loadInputHistory<\/span><span class=\"p\">():<\/span> <span class=\"kr\">string<\/span><span class=\"p\">[]<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">groupDir<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">inputMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">getGroupDir<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">myDataGroup<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">let<\/span> <span class=\"nx\">historyPath<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">groupDir<\/span><span class=\"p\">}<\/span><span class=\"s2\">\/input_history.json`<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">let<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">fs<\/span><span class=\"p\">.<\/span><span class=\"nf\">readFileSync<\/span><span class=\"p\">(<\/span><span class=\"nx\">historyPath<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/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\">Failed to read input history:<\/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=\"p\">[];<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"II_%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>  (II) \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 \u0634\u0645\u0627\u062a\u06cc\u06a9 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\u0644\u0627\u06cc\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc<\/th>\n<th>\u0634\u0631\u062d \u0639\u0645\u0644\u06a9\u0631\u062f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647<\/td>\n<td>\u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0627 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u062a\u0639\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f \u0648 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u062f\u060c \u0648 \u0628\u0627 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. <code>InputMethodController<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>\u062c\u0639\u0628\u0647 \u0634\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9<\/td>\n<td>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635\u06cc\u200c\u0634\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0631\u0627\u0628\u0637\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u0631\u0627 \u0645\u062a\u0648\u062c\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/td>\n<\/tr>\n<tr>\n<td>\u06a9\u0627\u0631\u0628\u0631\u062f \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc<\/td>\n<td>\u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062c\u0639\u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc \u0622\u0648\u0631\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0648 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\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\u200c\u0633\u0627\u0632\u06cc \u0641\u0648\u0642\u060c \u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u06cc\u0646 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0632 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0627\u06cc\u0645\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u062f\u0627\u0648\u0645 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\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 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u062e\u0635\u06cc \u062a\u0631 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u060c \u0648 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \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\u0646\u0627\u0628\u0639 \u0648 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0647\u0627\u06cc \u0627\u0631\u0632\u0634\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u0639\u0627\u0645\u0644 \u062c\u0639\u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0631\u0648\u0634 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 HarmonyOS \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.<\/p>\n<\/p><\/div>\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 \u062c\u0632\u0626\u06cc\u0627\u062a \u0641\u0646\u06cc \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u06cc \u0648 \u062c\u0639\u0628\u0647\u200c\u0647\u0627\u06cc sandbox \u0645\u0634\u062a\u0631\u06a9 \u062f\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0642\u0627\u0628\u0644 \u0627\u0633\u062a \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0627\u0642\u0639\u06cc \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062d\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0648 \u062a\u0628\u0627\u062f\u0644 \u0641\u0646\u06cc \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062e\u0637\u0627\u0647\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":83230,"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-83229","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\/83229","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=83229"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/83229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/83230"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=83229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=83229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=83229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}