توضیحات
از API مربوط به chrome.input.ime برای پیادهسازی یک IME سفارشی برای سیستمعامل کروم استفاده کنید. این به افزونه شما اجازه میدهد تا ضربات کلید را مدیریت کند، ترکیببندی را تنظیم کند و پنجره کاندید را مدیریت کند.
مجوزها
inputبرای استفاده از API مربوط به input.ime، باید مجوز "input" را در مانیفست افزونه تعریف کنید. برای مثال:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
در دسترس بودن
مثالها
کد زیر یک IME ایجاد میکند که حروف تایپ شده را به حروف بزرگ تبدیل میکند.
var context_id = -1;
chrome.input.ime.onFocus.addListener(function(context) {
context_id = context.contextID;
});
chrome.input.ime.onKeyEvent.addListener(
function(engineID, keyData) {
if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
chrome.input.ime.commitText({"contextID": context_id,
"text": keyData.key.toUpperCase()});
return true;
} else {
return false;
}
}
);
انواع
AssistiveWindowButton
شناسه دکمهها در پنجره کمکی.
شمارشی
"لغو" "افزودن به دیکشنری"
AssistiveWindowProperties
ویژگیهای پنجره کمکی
خواص
- رشته اعلان
رشته اختیاری
رشتههایی برای اعلام توسط ChromeVox.
- نوع
"لغو"
- قابل مشاهده
بولی
برای نمایش AssistiveWindow مقدار true و برای مخفی کردن مقدار false را تنظیم میکند.
AssistiveWindowType
نوع پنجره کمکی.
ارزش
"لغو"
AutoCapitalizeType
نوع حروف بزرگ خودکار فیلد متنی.
شمارشی
«شخصیتها» «کلمات» «جملهها»
InputContext
یک ورودی را توصیف میکند.
خواص
- خودکار با حروف بزرگکروم ۶۹+
نوع حروف بزرگ خودکار فیلد متنی.
- تکمیل خودکار
بولی
اینکه آیا فیلد متنی نیاز به تکمیل خودکار دارد یا خیر.
- تصحیح خودکار
بولی
اینکه آیا فیلد متن نیاز به تصحیح خودکار دارد یا خیر.
- شناسه زمینه
شماره
این برای مشخص کردن اهداف عملیات فیلد متنی استفاده میشود. این شناسه به محض فراخوانی onBlur نامعتبر میشود.
- shouldDoLearning
بولی
کروم ۶۸+اینکه آیا متن وارد شده در فیلد متن باید برای بهبود پیشنهادات تایپ برای کاربر استفاده شود یا خیر.
- بررسی املا
بولی
اینکه آیا فیلد متن نیاز به بررسی املا دارد یا خیر.
- نوع
نوع مقداری که این فیلد متنی ویرایش میکند، (متن، عدد، URL و غیره)
InputContextType
نوع مقداری که این فیلد متنی ویرایش میکند، (متن، عدد، URL و غیره)
شمارشی
«متن» «جستجو» "تلفن" "آدرس اینترنتی" «ایمیل» "شماره" "رمز عبور" "تهی"
KeyboardEvent
به http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent مراجعه کنید
خواص
- کلید alt
بولی اختیاری
اینکه آیا کلید ALT فشرده شده است یا خیر.
- کلید altgr
بولی اختیاری
کروم ۷۹+آیا کلید ALTGR فشرده شده است یا خیر.
- قفل کلاه
بولی اختیاری
آیا CAPS_LOCK فعال است یا خیر.
- کد
رشته
مقدار کلید فیزیکی فشرده شده. این مقدار تحت تأثیر طرحبندی فعلی صفحهکلید یا وضعیت اصلاحکننده قرار نمیگیرد.
- کلید ctrl
بولی اختیاری
اینکه آیا کلید CTRL فشرده شده است یا خیر.
- شناسه افزونه
رشته اختیاری
شناسه افزونه فرستنده این رویداد کلیدی.
- کلید
رشته
مقدار کلید فشرده شده
- کد کلید
شماره اختیاری
کد کلیدی HTML منسوخشده، که یک کد عددی وابسته به سیستم و پیادهسازی است و شناسه اصلاحنشده مرتبط با کلید فشردهشده را نشان میدهد.
- شناسه درخواست
رشته اختیاری
(منسوخ شده) شناسه درخواست. به جای آن از پارامتر
requestIdاز رویدادonKeyEventاستفاده کنید. - کلید شیفت
بولی اختیاری
اینکه آیا کلید SHIFT فشرده شده است یا خیر.
یکی از حالتهای بالا بردن یا پایین آوردن کلید.
KeyboardEventType
شمارشی
"کلید زدن" "کلید پایین"
MenuItem
یک آیتم منو که توسط یک متد ورودی برای تعامل با کاربر از منوی زبان استفاده میشود.
خواص
- بررسی شده
بولی اختیاری
نشان میدهد که این مورد باید با تیک کشیده شود.
- فعال شده
بولی اختیاری
نشان میدهد که این مورد فعال شده است.
- شناسه
رشته
رشتهای که به توابع فراخوانی (callback) ارجاعدهنده به این MenuItem ارسال خواهد شد.
- برچسب
رشته اختیاری
متنی که در منوی این مورد نمایش داده میشود.
- سبک
سبک آیتم منو اختیاری
نوع آیتم منو.
- قابل مشاهده
بولی اختیاری
نشان میدهد که این مورد قابل مشاهده است.
MenuItemStyle
نوع آیتم منو. دکمههای رادیویی بین جداکنندهها، گروهبندی شده در نظر گرفته میشوند.
شمارشی
"چک" «رادیو» "جداکننده"
MenuParameters
خواص
- موتور آی دی
رشته
شناسه موتور مورد استفاده.
- اقلام
آیتم منو []
آیتمهای منو برای اضافه کردن یا بهروزرسانی. آنها به ترتیبی که در آرایه وجود دارند اضافه میشوند.
MouseButton
کدام دکمههای ماوس کلیک شدهاند؟
شمارشی
«چپ» "وسط" «درست»
ScreenType
نوع صفحهای که IME تحت آن فعال میشود.
شمارشی
"عادی" "ورود" "قفل" "ورود ثانویه"
UnderlineStyle
نوع خط زیرین برای اصلاح این بخش.
شمارشی
«زیر خط کشیدن» "دوبار زیرخط" "بدون زیرخط"
WindowPosition
محل نمایش پنجره کاندید. اگر روی «مکاننما» تنظیم شود، پنجره مکاننما را دنبال میکند. اگر روی «ترکیببندی» تنظیم شود، پنجره در ابتدای ترکیببندی قفل میشود.
شمارشی
"مکان نما" "ترکیب بندی"
روشها
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
ترکیب فعلی را پاک کنید. اگر این افزونه IME فعال را نداشته باشد، این کار انجام نمیشود.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که ترکیب در آن پاک خواهد شد
بازگشتها
قول <boolean>
کروم ۱۱۱+زمانی که عملیات با یک مقدار بولی که نشان میدهد متن پذیرفته شده است یا خیر، کامل میشود، این خطا رخ میدهد. در صورت شکست، promise رد خواهد شد.
commitText()
chrome.input.ime.commitText(
parameters: object,
): Promise<boolean>
متن ارائه شده را به ورودی فعلی اختصاص میدهد.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که متن در آن ثبت خواهد شد
- متن
رشته
متن برای کامیت کردن
بازگشتها
قول <boolean>
کروم ۱۱۱+زمانی که عملیات با یک مقدار بولی که نشان میدهد متن پذیرفته شده است یا خیر، کامل میشود، این خطا رخ میدهد. در صورت شکست، promise رد خواهد شد.
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
متن اطراف هشتک را حذف میکند.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که متن اطراف آن حذف خواهد شد.
- موتور آی دی
رشته
شناسه موتوری که رویداد را دریافت میکند.
- طول
شماره
تعداد کاراکترهایی که باید حذف شوند
- جبران
شماره
مقدار فاصله از موقعیت هشتک که حذف از آنجا شروع میشود. این مقدار میتواند منفی باشد.
بازگشتها
قول<void>
کروم ۱۱۱+با اتمام عملیات برطرف میشود.
hideInputView()
chrome.input.ime.hideInputView(): void
پنجره نمای ورودی را که به طور خودکار توسط سیستم ظاهر میشود، پنهان میکند. اگر پنجره نمای ورودی از قبل پنهان باشد، این تابع هیچ کاری انجام نمیدهد.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
نشان میدهد که رویداد کلید دریافت شده توسط onKeyEvent مدیریت میشود. این فقط باید در صورتی فراخوانی شود که شنونده onKeyEvent ناهمزمان باشد.
پارامترها
- شناسه درخواست
رشته
شناسه رویدادی که مدیریت شده است را درخواست کنید. این شناسه باید از keyEvent.requestId بیاید.
- پاسخ
بولی
اگر ضربه کلید مدیریت شده باشد، درست و در غیر این صورت، نادرست است.
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
رویدادهای کلید را ارسال میکند. انتظار میرود این تابع توسط صفحهکلیدهای مجازی استفاده شود. وقتی کاربر کلید(هایی) را روی صفحهکلید مجازی فشار میدهد، این تابع برای انتشار آن رویداد به سیستم استفاده میشود.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که رویدادهای کلیدی به آن ارسال میشوند، یا صفر برای ارسال رویدادهای کلیدی به فیلد غیر ورودی.
- دادههای کلیدی
دادههای مربوط به رویداد کلیدی.
بازگشتها
قول<void>
کروم ۱۱۱+با اتمام عملیات برطرف میشود.
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
دکمهای را در یک پنجره کمکی برجسته/غیر برجسته میکند.
پارامترها
- پارامترها
شیء
- رشته اعلان
رشته اختیاری
متنی که صفحهخوان باید اعلام کند.
- دکمه ID
شناسه دکمه
- شناسه زمینه
شماره
شناسهی زمینهای که پنجرهی کمکی را در اختیار دارد.
- برجسته شده
بولی
اینکه آیا دکمه باید برجسته شود یا خیر.
- نوع پنجره
"لغو"
نوع پنجرهای که دکمه به آن تعلق دارد.
بازگشتها
قول<void>
کروم ۱۱۱+با اتمام عملیات، برطرف میشود. در صورت عدم موفقیت، promise رد میشود.
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
یک پنجره کمکی با ویژگیهای داده شده را نمایش میدهد/پنهان میکند.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که پنجرهی کمکی را در اختیار دارد.
- خواص
ویژگیهای پنجره کمکی
بازگشتها
قول <boolean>
کروم ۱۱۱+با اتمام عملیات برطرف میشود.
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
لیست کاندیدهای فعلی را تنظیم میکند. اگر این افزونه IME فعال را نداشته باشد، این کار انجام نمیشود.
پارامترها
- پارامترها
شیء
- نامزدها
شیء[]
فهرست کاندیداها برای نمایش در پنجره کاندیداها
- حاشیه نویسی
رشته اختیاری
متن اضافی که کاندیدا را توصیف میکند
- نامزد
رشته
نامزد
- شناسه
شماره
شناسه نامزد
- برچسب
رشته اختیاری
رشته کوتاهی که در کنار نام کاندیدا نمایش داده میشود، اغلب کلید میانبر یا اندیس
- شناسه والدین
شماره اختیاری
شناسهای که باید این نامزدها را در زیر آن اضافه کنید
- کاربرد
شیء اختیاری
کاربرد یا شرح جزئیات کلمه.
- بدن
رشته
رشته بدنه توضیحات جزئی.
- عنوان
رشته
رشته عنوان توضیحات جزئیات.
- شناسه زمینه
شماره
شناسهی زمینهای که مالک پنجرهی کاندید است.
بازگشتها
قول <boolean>
کروم ۱۱۱+با اتمام عملیات برطرف میشود.
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
ویژگیهای پنجره کاندید را تنظیم میکند. اگر افزونه IME فعال را نداشته باشد، این کار ناموفق خواهد بود.
پارامترها
- پارامترها
شیء
- موتور آی دی
رشته
شناسه موتور برای تنظیم ویژگیها.
- خواص
شیء
- متن کمکی
رشته اختیاری
متنی که در پایین پنجره کاندید نشان داده میشود.
- کمکیTextVisible
بولی اختیاری
برای نمایش متن کمکی از مقدار True و برای پنهان کردن آن از مقدار false استفاده میشود.
- شاخص کاندیدای فعلی
شماره اختیاری
کروم ۸۴+شاخص کاندیدای منتخب فعلی از کل کاندیداها.
- مکاننماقابل مشاهده
بولی اختیاری
برای نمایش مکاننما از True و برای پنهان کردن آن از false استفاده کنید.
- اندازه صفحه
شماره اختیاری
تعداد کاندیداهایی که در هر صفحه نمایش داده میشوند.
- کل کاندیداها
شماره اختیاری
کروم ۸۴+تعداد کل کاندیداها برای پنجره کاندیداها.
- عمودی
بولی اختیاری
اگر پنجرهی کاندید باید به صورت عمودی رندر شود، مقدار True و برای افقی کردن آن، مقدار False را برمیگرداند.
- قابل مشاهده
بولی اختیاری
برای نمایش پنجرهی کاندید، مقدار True و برای پنهان کردن آن، مقدار false را وارد کنید.
- موقعیت پنجره
موقعیت پنجره اختیاری
پنجره کاندید کجا نمایش داده شود.
بازگشتها
قول <boolean>
کروم ۱۱۱+با اتمام عملیات برطرف میشود.
setComposition()
chrome.input.ime.setComposition(
parameters: object,
): Promise<boolean>
ترکیب فعلی را تنظیم کنید. اگر این افزونه IME فعال را نداشته باشد، این کار انجام نمیشود.
پارامترها
- پارامترها
شیء
- شناسه زمینه
شماره
شناسهی زمینهای که متن ترکیبی در آن تنظیم خواهد شد
- مکان نما
شماره
موقعیت مکاننما در متن.
- بخشها
شیء[] اختیاری
فهرست بخشها و انواع مرتبط با آنها.
- پایان
شماره
فهرست شخصیتهایی که قرار است این بخش بعد از آنها تمام شود.
- شروع
شماره
فهرست شخصیتهایی که قرار است این بخش از آنها شروع شود
- سبک
نوع خط زیرین برای اصلاح این بخش.
- انتخابپایان
شماره اختیاری
موقعیتی در متن که انتخاب در آن پایان مییابد.
- انتخاب شروع
شماره اختیاری
موقعیتی در متن که انتخاب از آن شروع میشود.
- متن
رشته
متن برای تنظیم
بازگشتها
قول <boolean>
کروم ۱۱۱+زمانی که عملیات با یک مقدار بولی که نشان میدهد متن پذیرفته شده است یا خیر، کامل میشود، این خطا رخ میدهد. در صورت شکست، promise رد خواهد شد.
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
موقعیت مکاننما را در پنجره کاندید تنظیم کنید. اگر این افزونه IME فعال را نداشته باشد، این گزینه غیرفعال است.
پارامترها
- پارامترها
شیء
- شناسه کاندید
شماره
شناسنامه داوطلب مورد نظر برای انتخاب.
- شناسه زمینه
شماره
شناسهی زمینهای که مالک پنجرهی کاندید است.
بازگشتها
قول <boolean>
کروم ۱۱۱+با اتمام عملیات برطرف میشود
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
وقتی این IME فعال است، موارد منوی ارائه شده را به منوی زبان اضافه میکند.
پارامترها
- پارامترها
بازگشتها
قول<void>
کروم ۱۱۱+
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
وضعیت MenuItems مشخص شده را بهروزرسانی میکند.
پارامترها
- پارامترها
بازگشتها
قول<void>
کروم ۱۱۱+با اتمام عملیات برطرف میشود
رویدادها
onActivate
chrome.input.ime.onActivate.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که یک IME فعال شود. این رویداد نشان میدهد که IME رویدادهای onKeyPress را دریافت خواهد کرد.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string, screen: ScreenType) => void
- موتور آی دی
رشته
- صفحه نمایش
onAssistiveWindowButtonClicked
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که روی یک دکمه در یک پنجره کمکی کلیک شود.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(details: object) => void
- جزئیات
شیء
- دکمه ID
شناسهی دکمهی کلیک شده.
- نوع پنجره
نوع پنجره کمکی.
onBlur
chrome.input.ime.onBlur.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که focus از یک کادر متنی خارج شود. این رویداد به تمام افزونههایی که به این رویداد گوش میدهند و توسط کاربر فعال شدهاند، ارسال میشود.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(contextID: number) => void
- شناسه زمینه
شماره
onCandidateClicked
chrome.input.ime.onCandidateClicked.addListener(
callback: function,
)
این رویداد در صورتی ارسال میشود که این افزونه IME فعال را داشته باشد.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string, candidateID: number, button: MouseButton) => void
- موتور آی دی
رشته
- شناسه کاندید
شماره
- دکمه
onDeactivated
chrome.input.ime.onDeactivated.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که یک IME غیرفعال شود. این رویداد نشان میدهد که IME دیگر رویدادهای onKeyPress را دریافت نخواهد کرد.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string) => void
- موتور آی دی
رشته
onFocus
chrome.input.ime.onFocus.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که focus وارد یک کادر متنی شود. این رویداد به تمام افزونههایی که به این رویداد گوش میدهند و توسط کاربر فعال شدهاند، ارسال میشود.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(context: InputContext) => void
- زمینه
onInputContextUpdate
chrome.input.ime.onInputContextUpdate.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که ویژگیهای InputContext فعلی، مانند نوع، تغییر کنند. این رویداد به تمام افزونههایی که به این رویداد گوش میدهند و توسط کاربر فعال شدهاند، ارسال میشود.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(context: InputContext) => void
- زمینه
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
زمانی اجرا میشود که یک رویداد کلیدی از سیستم عامل ارسال شود. اگر این افزونه IME فعال را در اختیار داشته باشد، رویداد به افزونه ارسال خواهد شد. اگر رویداد مدیریت شده باشد، تابع شنونده باید مقدار true را برگرداند، در غیر این صورت مقدار false را برمیگرداند. اگر رویداد به صورت ناهمگام ارزیابی شود، این تابع باید مقدار undefined را برگرداند و IME باید بعداً keyEventHandled() را با نتیجه فراخوانی کند.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
- موتور آی دی
رشته
- دادههای کلیدی
- شناسه درخواست
رشته
- بازده
بولی | تعریف نشده
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
زمانی که کاربر یک آیتم از منو را انتخاب میکند، فراخوانی میشود
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string, name: string) => void
- موتور آی دی
رشته
- نام
رشته
onReset
chrome.input.ime.onReset.addListener(
callback: function,
)
این رویداد زمانی ارسال میشود که کروم جلسه ورودی متن جاری را خاتمه میدهد.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string) => void
- موتور آی دی
رشته
onSurroundingTextChanged
chrome.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
زمانی فراخوانی میشود که رشتهی قابل ویرایش اطراف هشتک تغییر کند یا موقعیت هشتک جابجا شود. طول متن برای هر جهت رفت و برگشت به ۱۰۰ کاراکتر محدود میشود.
پارامترها
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(engineID: string, surroundingInfo: object) => void
- موتور آی دی
رشته
- اطلاعات پیرامون
شیء
- لنگر
شماره
موقعیت شروع انتخاب. این مقدار موقعیت نشانگر را در صورت عدم انتخاب نشان میدهد.
- تمرکز
شماره
موقعیت پایانی انتخاب. این مقدار موقعیت نشانگر را در صورت عدم انتخاب نشان میدهد.
- جبران
شماره
کروم ۴۶+موقعیت افست
text. از آنجایی کهtextفقط شامل زیرمجموعهای از متن در اطراف مکاننما است، افست موقعیت مطلق اولین کاراکترtextرا نشان میدهد. - متن
رشته
متن اطراف مکاننما. این تنها زیرمجموعهای از کل متن موجود در فیلد ورودی است.