在 Chrome 自定义标签 android 中阻止 Url
Block Url in Crome Custom Tabs android
借助辅助功能服务,我能够检测到 URL 正在加载到 Chrome 自定义选项卡中,现在我想找到后退按钮的 ID,以便我可以关闭选项卡如果 url 在阻止列表中,以下是点击操作的代码:
List<AccessibilityNodeInfo> list = nodeInfo.
findAccessibilityNodeInfosByViewId("com.android.chrome:"id for back button"");
for (AccessibilityNodeInfo node : list) {
Log.i(TAG, "ACC::onAccessibilityEvent: back_button " + node);
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
关于您的代码的一切都相当准确。 findAccessibilityNodeInfosByViewId
函数的问题不是所有视图都有 viewId。您将必须自己爬取视图层次结构才能完成此操作,并查找视图 ID 以外的属性。
如果您想查看 viewID 是什么,您应该使用 Android Device Monitor Hierarchy Dump 来访问它,并且还有助于了解您可能会查看的其他属性以了解您还可以查看什么发现这可能更一致并且不依赖于 ID。
这里我们看到了来自 Android 设备监视器的典型屏幕转储。如您所见,突出显示的视图的视图 ID 会显示在下面的信息中(如果有的话)。另请注意,多个视图可以共享此 ID!它是 ViewIdResourceName,不是唯一 ID。
借助辅助功能服务,我能够检测到 URL 正在加载到 Chrome 自定义选项卡中,现在我想找到后退按钮的 ID,以便我可以关闭选项卡如果 url 在阻止列表中,以下是点击操作的代码:
List<AccessibilityNodeInfo> list = nodeInfo.
findAccessibilityNodeInfosByViewId("com.android.chrome:"id for back button"");
for (AccessibilityNodeInfo node : list) {
Log.i(TAG, "ACC::onAccessibilityEvent: back_button " + node);
node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
关于您的代码的一切都相当准确。 findAccessibilityNodeInfosByViewId
函数的问题不是所有视图都有 viewId。您将必须自己爬取视图层次结构才能完成此操作,并查找视图 ID 以外的属性。
如果您想查看 viewID 是什么,您应该使用 Android Device Monitor Hierarchy Dump 来访问它,并且还有助于了解您可能会查看的其他属性以了解您还可以查看什么发现这可能更一致并且不依赖于 ID。
这里我们看到了来自 Android 设备监视器的典型屏幕转储。如您所见,突出显示的视图的视图 ID 会显示在下面的信息中(如果有的话)。另请注意,多个视图可以共享此 ID!它是 ViewIdResourceName,不是唯一 ID。