Javascript UrbanAirship-HTML按钮-设置要传递给代码的标记

Javascript UrbanAirship-HTML按钮-设置要传递给代码的标记,javascript,android,html,urbanairship.com,Javascript,Android,Html,Urbanairship.com,我想做的很简单。我正在使用UrbanAirship显示模式视图(“应用程序内自动化”),即HTML。我的HTML中有一个按钮。触发事件时,消息/视图显示良好。现在,我在HTML中为按钮添加了: <button class="light" type="button" onclick="UAirship.close()">OK</button> 当消息/视图显示和取消时,它进入这些方法而没有任何问题。然而,我希望能够检测到一个特定的按钮被点击,而不是HTML中的其他按钮。有

我想做的很简单。我正在使用UrbanAirship显示模式视图(“应用程序内自动化”),即HTML。我的HTML中有一个按钮。触发事件时,消息/视图显示良好。现在,我在HTML中为按钮添加了:

<button class="light" type="button" onclick="UAirship.close()">OK</button>
当消息/视图显示和取消时,它进入这些方法而没有任何问题。然而,我希望能够检测到一个特定的按钮被点击,而不是HTML中的其他按钮。有没有一种方法可以很容易地做到这一点,以便在“ResolutionInfo”对象或“InAppMessage”中传递一些自定义标记或其他内容

我的希望是会有类似“UAirship.close('tag')”的东西,在那里标签会被传递回去。甚至我可以在按钮上放置一个自定义HTML标记,该标记可以在代码中识别。实际上,任何方法都可以,我只是在文档中找不到如何正确地使用HTML

我正在看文件。我看到了UAirship.runAction()方法,但我并不清楚该方法的简单实现是什么(此外,action注册中引用的“CustomAction”类似乎在库中根本不存在

我基本上只需要在我的活动中调用一行代码,当飞艇信息在点击该按钮后关闭时


想法?

我发现这个解决方案有效,尽管可能有更好的解决方案。 在HTML中,对于按钮,调用close()然后调用runAction():

然后在代码中,在我的活动中的onCreate()中,我有:

final String actionName = "my_action";
Action customAction = new Action() {
    @NonNull
    @Override
    public ActionResult perform(@NonNull ActionArguments actionArguments) {
        String buttonActionName = actionArguments.getMetadata().getString(ActionArguments.REGISTRY_ACTION_NAME_METADATA);
        if (buttonActionName.equals(actionName)) {
            // DO WHAT IS NEEDED HERE
        }
        return ActionResult.newEmptyResult();
    }
};
​
UAirship.shared()
    .getActionRegistry()
    .registerAction(customAction, actionName);
onclick="UAirship.close(); UAirship.runAction('my_action', null, null)"
final String actionName = "my_action";
Action customAction = new Action() {
    @NonNull
    @Override
    public ActionResult perform(@NonNull ActionArguments actionArguments) {
        String buttonActionName = actionArguments.getMetadata().getString(ActionArguments.REGISTRY_ACTION_NAME_METADATA);
        if (buttonActionName.equals(actionName)) {
            // DO WHAT IS NEEDED HERE
        }
        return ActionResult.newEmptyResult();
    }
};
​
UAirship.shared()
    .getActionRegistry()
    .registerAction(customAction, actionName);