Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
fac6f52b
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
10 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fac6f52b
编写于
8月 26, 2021
作者:
囧jt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify:
[Android]-add DoKitMCHummerHelper.java
上级
5b1df7c3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
0 deletion
+55
-0
Android/dokit-rpc-mc/src/main/java/com/didichuxing/doraemonkit/DoKitMCHummerHelper.java
...java/com/didichuxing/doraemonkit/DoKitMCHummerHelper.java
+55
-0
未找到文件。
Android/dokit-rpc-mc/src/main/java/com/didichuxing/doraemonkit/DoKitMCHummerHelper.java
0 → 100644
浏览文件 @
fac6f52b
package
com.didichuxing.doraemonkit.rpc
;
import
android.view.View
;
import
com.didi.hummer.context.HummerContext
;
import
com.didi.hummer.pool.ComponentPool
;
import
com.didi.hummer.render.component.view.HMBase
;
import
com.didichuxing.doraemonkit.DoKit
;
import
java.lang.reflect.Field
;
import
java.util.Map
;
/**
* Created by XiaoFeng on 2021/8/12.
*/
public
class
DoKitMCHummerHelper
{
public
static
void
registerHummerMCEventListener
(
HummerContext
context
)
{
context
.
registerJSFunction
(
"sendMCCustomEvent"
,
params
->
{
long
objId
=
((
Number
)
params
[
0
]).
longValue
();
HMBase
hmBase
=
context
.
getObjectPool
().
get
(
objId
);
String
eventType
=
(
String
)
params
[
1
];
Map
<
String
,
String
>
ps
=
(
Map
)
params
[
2
];
DoKit
.
sendCustomEvent
(
eventType
,
hmBase
.
getView
(),
ps
);
return
null
;
});
}
public
static
void
processHummerMCClientEvent
(
HummerContext
context
,
View
view
,
String
eventType
,
Map
<
String
,
String
>
params
)
{
HMBase
hmbase
=
searchHMView
(
context
,
view
);
if
(
hmbase
!=
null
)
{
context
.
getJsContext
().
callFunction
(
"processMCClientEvent"
,
hmbase
.
getJSValue
(),
eventType
,
params
);
}
}
private
static
HMBase
searchHMView
(
HummerContext
context
,
View
view
)
{
HMBase
hmbase
=
null
;
try
{
ComponentPool
pool
=
(
ComponentPool
)
context
.
getObjectPool
();
Class
<?
extends
ComponentPool
>
clazz
=
pool
.
getClass
();
Field
mInstanceField
=
clazz
.
getDeclaredField
(
"mInstance"
);
mInstanceField
.
setAccessible
(
true
);
Map
<
Long
,
Object
>
instance
=
(
Map
)
mInstanceField
.
get
(
pool
);
for
(
Long
objId
:
instance
.
keySet
())
{
HMBase
b
=
(
HMBase
)
instance
.
get
(
objId
);
if
(
b
.
getView
().
equals
(
view
))
{
hmbase
=
b
;
break
;
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
hmbase
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录