Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
d20afb00
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d20afb00
编写于
7月 14, 2023
作者:
Z
zhangyushuai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
input物理按键输入用例覆盖 001
Signed-off-by:
N
zhangyushuai
<
zhangyushuai1@huawei.com
>
上级
d7635faf
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
880 addition
and
2 deletion
+880
-2
inputmethod/InputMethodEngine/entry/src/main/ets/InputMethodEngineKey/InputKeyService.ts
...ntry/src/main/ets/InputMethodEngineKey/InputKeyService.ts
+32
-0
inputmethod/InputMethodEngine/entry/src/main/ets/InputMethodEngineKey/KeyboardController.ts
...y/src/main/ets/InputMethodEngineKey/KeyboardController.ts
+343
-0
inputmethod/InputMethodEngine/entry/src/main/ets/test/List.test.ets
...d/InputMethodEngine/entry/src/main/ets/test/List.test.ets
+4
-2
inputmethod/InputMethodEngine/entry/src/main/ets/test/inputMethodEngineKey.test.ets
...ine/entry/src/main/ets/test/inputMethodEngineKey.test.ets
+493
-0
inputmethod/InputMethodEngine/entry/src/main/module.json
inputmethod/InputMethodEngine/entry/src/main/module.json
+8
-0
未找到文件。
inputmethod/InputMethodEngine/entry/src/main/ets/InputMethodEngineKey/InputKeyService.ts
0 → 100755
浏览文件 @
d20afb00
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
InputMethodExtensionAbility
from
'
@ohos.InputMethodExtensionAbility
'
;
import
{
KeyboardController
}
from
'
./KeyboardController
'
;
export
default
class
InputKeyService
extends
InputMethodExtensionAbility
{
private
keyboardController
:
KeyboardController
;
onCreate
(
want
)
{
console
.
log
(
"
====>onCreate onCreate onCreate onCreate onCreate onCreate InputKeyService************************
"
);
this
.
keyboardController
=
new
KeyboardController
(
this
.
context
);
this
.
keyboardController
.
onCreate
();
}
onDestroy
()
{
console
.
log
(
"
onDestroy InputKeyService**
"
);
this
.
context
.
destroy
();
}
}
\ No newline at end of file
inputmethod/InputMethodEngine/entry/src/main/ets/InputMethodEngineKey/KeyboardController.ts
0 → 100755
浏览文件 @
d20afb00
import
prompt
from
'
@ohos.prompt
'
;
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
inputmethodengine
from
'
@ohos.inputMethodEngine
'
;
import
display
from
'
@ohos.display
'
;
import
windowManager
from
'
@ohos.window
'
;
import
commoneventmanager
from
'
@ohos.commonEventManager
'
;
let
inputKeyboardDelegate
=
inputmethodengine
.
getKeyboardDelegate
();
let
inputMethodAbility
=
inputmethodengine
.
getInputMethodAbility
();
const
TAG
=
"
keyboardController
"
;
export
class
KeyboardController
{
mContext
;
WINDOW_TYPE_INPUT_METHOD_FLOAT
=
2105
;
windowName
=
'
inputApp
'
;
constructor
(
context
)
{
this
.
mContext
=
context
;
}
public
onCreate
():
void
{
let
that
=
this
;
inputMethodAbility
.
on
(
"
inputStop
"
,
()
=>
{
this
.
mContext
.
destroy
((
err
,
data
)
=>
{
console
.
info
(
TAG
+
'
====>inputMethodEngine destorey err:
'
+
JSON
.
stringify
(
err
));
console
.
info
(
TAG
+
'
====>inputMethodEngine destorey data:
'
+
JSON
.
stringify
(
data
));
});
});
function
subscriberCallback
(
err
,
data
)
{
console
.
debug
(
TAG
+
'
====>receive event err:
'
+
JSON
.
stringify
(
err
));
console
.
debug
(
TAG
+
'
====>receive event data
'
+
JSON
.
stringify
(
data
));
switch
(
data
.
code
)
{
case
10
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0010
();
break
;
case
20
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0020
();
break
;
case
30
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0030
();
break
;
case
40
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0040
();
break
;
case
50
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0050
();
break
;
case
60
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0060
();
break
;
case
70
:
console
.
debug
(
TAG
+
'
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 event:
'
+
data
.
event
);
that
.
SUB_Misc_InputMethod_Manage_Physical_Buttons_0070
();
break
;
}
}
var
commonEventSubscribeInfo
=
{
events
:
[
"
test
"
]
};
var
subscriber
;
commoneventmanager
.
createSubscriber
(
commonEventSubscribeInfo
).
then
(
function
(
data
)
{
subscriber
=
data
;
commoneventmanager
.
subscribe
(
subscriber
,
subscriberCallback
);
console
.
debug
(
TAG
+
'
====>scene subscribe finish====
'
);
});
}
private
publishCallback
(
err
):
void
{
if
(
err
)
{
console
.
error
(
TAG
+
'
====>publish failed:
'
+
JSON
.
stringify
(
err
));
}
else
{
console
.
log
(
TAG
+
'
====>publish
'
);
}
}
public
onDestroy
():
void
{
console
.
log
(
'
imsakitjsapp onDestroy
'
);
globalThis
.
textInputClient
.
getTextIndexAtCursor
().
then
((
index
)
=>
{
console
.
log
(
'
imsakitjsapp getTextIndexAtCursor: index =
'
+
index
);
prompt
.
showToast
({
message
:
'
getTextIndexAtCursor success
'
+
index
,
duration
:
200
,
bottom
:
500
});
var
win
=
windowManager
.
findWindow
(
this
.
windowName
);
win
.
destroyWindow
();
this
.
mContext
.
terminateSelf
();
return
true
;
}).
catch
((
err
)
=>
{
prompt
.
showToast
({
message
:
'
getTextIndexAtCursor failed
'
,
duration
:
200
,
bottom
:
500
});
});
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0010
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 keyEvent:
"
+
KeyEvents
.
key
.
code
);
if
(
KeyEvents
.
key
.
code
===
2045
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
}
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0010 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0010
"
,
commonEventPublishData
,
this
.
publishCallback
);
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0020
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 keyEvent:
"
+
KeyEvents
.
key
.
code
);
if
(
KeyEvents
.
key
.
code
===
2017
&&
KeyEvents
.
action
===
1
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
}
else
{
commonEventPublishData
=
{
data
:
"
FAILED
"
};
}
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0020 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0020
"
,
commonEventPublishData
,
this
.
publishCallback
);
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0030
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
let
arr
=
new
Array
();
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 keyEvent:
"
+
KeyEvents
.
key
.
code
);
arr
.
push
(
KeyEvents
.
action
);
arr
.
push
(
KeyEvents
.
key
.
code
);
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 arr:
"
+
JSON
.
stringify
(
arr
));
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0030 arr:
"
+
arr
.
join
());
if
(
arr
.
join
()
===
'
1,2045,1,2049,2,2049,2,2045
'
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0030
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
else
{
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0030
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0040
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
let
arr
=
new
Array
();
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 keyEvent:
"
+
KeyEvents
.
key
.
code
);
arr
.
push
(
KeyEvents
.
action
);
arr
.
push
(
KeyEvents
.
key
.
code
);
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 arr:
"
+
JSON
.
stringify
(
arr
));
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0040 arr:
"
+
arr
.
join
());
if
(
arr
.
join
()
===
'
1,2017,1,2047,2,2017,2,2047
'
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0040
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
else
{
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0040
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0050
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
let
arr
=
new
Array
();
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 keyEvent:
"
+
KeyEvents
.
key
.
code
);
arr
.
push
(
KeyEvents
.
action
);
arr
.
push
(
KeyEvents
.
key
.
code
);
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 arr:
"
+
JSON
.
stringify
(
arr
));
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0050 arr:
"
+
arr
.
join
());
if
(
arr
.
join
()
===
'
1,2047,1,2017,2,2017,2,2047
'
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0050
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
else
{
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0050
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0060
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
let
arr
=
new
Array
();
console
.
info
(
TAG
+
'
====>receive SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 keyEvent:
"
+
KeyEvents
.
key
.
code
);
arr
.
push
(
KeyEvents
.
action
);
arr
.
push
(
KeyEvents
.
key
.
code
);
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 arr:
"
+
JSON
.
stringify
(
arr
));
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0060 arr:
"
+
arr
.
join
());
if
(
arr
.
join
()
===
'
1,2072,1,2045,1,2055,2,2055,2,2045,2,2072
'
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0060
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
else
{
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0060
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
},
500
);
}
private
SUB_Misc_InputMethod_Manage_Physical_Buttons_0070
():
void
{
let
commonEventPublishData
=
{
data
:
"
FAILED
"
};
let
arr
=
new
Array
();
console
.
info
(
TAG
+
'
====>receive r success
'
);
inputKeyboardDelegate
.
on
(
'
keyEvent
'
,
(
KeyEvents
)
=>
{
console
.
info
(
TAG
+
"
====>inputKeyboardDelegate.on('keyEvent')
"
);
try
{
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 keyEvent:
"
+
KeyEvents
.
action
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 keyEvent:
"
+
KeyEvents
.
key
.
code
);
arr
.
push
(
KeyEvents
.
action
);
arr
.
push
(
KeyEvents
.
key
.
code
);
}
catch
(
err
){
console
.
error
(
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 keyDown throw_error:
"
+
err
);
}
return
true
;
});
let
t
=
setTimeout
(()
=>
{
clearTimeout
(
t
);
inputKeyboardDelegate
.
off
(
"
keyEvent
"
);
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 arr:
"
+
JSON
.
stringify
(
arr
));
console
.
info
(
TAG
+
"
====>SUB_Misc_InputMethod_Manage_Physical_Buttons_0070 arr:
"
+
arr
.
join
());
if
(
arr
.
join
()
===
'
1,2072,1,2045,1,2017,2,2017,2,2045,2,2072
'
){
commonEventPublishData
=
{
data
:
"
SUCCESS
"
};
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0070
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
else
{
commoneventmanager
.
publish
(
"
SUB_Misc_InputMethod_Manage_Physical_Buttons_0070
"
,
commonEventPublishData
,
this
.
publishCallback
);
}
},
500
);
}
}
\ No newline at end of file
inputmethod/InputMethodEngine/entry/src/main/ets/test/List.test.ets
浏览文件 @
d20afb00
...
...
@@ -12,10 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import inputMethodEngine from './inputMethodEngine.test'
import inputMethodAbility from './inputMethodAbility.test'
import inputMethodEngine from './inputMethodEngine.test';
import inputMethodAbility from './inputMethodAbility.test';
import inputMethodEngineKey from './inputMethodEngineKey.test';
export default function testsuite() {
inputMethodEngine();
inputMethodAbility();
inputMethodEngineKey();
}
\ No newline at end of file
inputmethod/InputMethodEngine/entry/src/main/ets/test/inputMethodEngineKey.test.ets
0 → 100755
浏览文件 @
d20afb00
此差异已折叠。
点击以展开。
inputmethod/InputMethodEngine/entry/src/main/module.json
浏览文件 @
d20afb00
...
...
@@ -53,6 +53,14 @@
"srcEntrance"
:
"./ets/InputMethodEngine/InputDemoService.ts"
,
"type"
:
"inputMethod"
,
"visible"
:
true
},
{
"description"
:
"keyEventDemo"
,
"icon"
:
"$media:icon"
,
"name"
:
"InputKeyService"
,
"srcEntrance"
:
"./ets/InputMethodEngineKey/InputKeyService.ts"
,
"type"
:
"inputMethod"
,
"visible"
:
true
}
],
"requestPermissions"
:
[
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录