本文介绍如何在小程序弹出菜单上扩展自定义选项并响应用户点击事件。
操作步骤
确保
mp_ta_showOptionMenu
配置已开启,详情参考 容器配置。使用
TinyPopMenuItem.Builder
类创建TinyPopMenuItem
对象。Builder 类支持设置选项的名称、图标(支持 URL 和 Drawable )及事件回调对象。
调用 Builder 类 setId 方法须保证 ID 唯一性。
事件回调对象的
onClick
方法的第二个参数携带小程序的 appId 以及弹出菜单所在小程序页面的具体路径。在打开小程序前将
TinyPopMenuProvider
实例对象设置到容器。
代码示例
H5Utils.setProvider(TinyPopMenuProvider.class.getName(), new TinyPopMenuProvider() {
@Override
public List<TinyPopMenuItem> fetchMenuItems(String appId) {
List<TinyPopMenuItem> items = new ArrayList<>();
TinyPopMenuItem urlItem = new TinyPopMenuItem.Builder()
.setId("1000")
.setIconUrl("https://gw-office.alipayobjects.com/basement_prod/3d46378a-6e4f-4aa1-820e-fd16da76b457.png")
.setName("关于")
.setCallback(new TinyPopMenuItem.TinyPopMenuItemClickListener() {
@Override
public void onClick(Context context, Bundle bundle) {
String appId = bundle.getString("appId");
String path = bundle.getString("page");
Toast.makeText(context, "应用ID=" + appId + ",页面=" + path, Toast.LENGTH_LONG).show();
}
})
.build();
items.add(urlItem);
TinyPopMenuItem localItem = new TinyPopMenuItem.Builder()
.setId("1001")
.setIcon(getResources().getDrawable(R.drawable.smile))
.setName("启动")
.setCallback(new TinyPopMenuItem.TinyPopMenuItemClickListener() {
@Override
public void onClick(Context context, Bundle bundle) {
Toast.makeText(context, "启动" + bundle.toString(), Toast.LENGTH_LONG).show();
}
})
.build();
items.add(localItem);
return items;
}
});
文档内容是否对您有帮助?