From 8935dbac20f15995e481d5a09363b7dbae7c6cac Mon Sep 17 00:00:00 2001 From: cnico Date: Tue, 24 Jan 2023 14:24:11 +0100 Subject: [PATCH] Allow iframe links to open on android through a parameter (#15063) --- src/panels/lovelace/cards/hui-iframe-card.ts | 7 ++++++- src/panels/lovelace/cards/types.ts | 1 + .../editor/config-elements/hui-iframe-card-editor.ts | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/panels/lovelace/cards/hui-iframe-card.ts b/src/panels/lovelace/cards/hui-iframe-card.ts index 0ce53d5cef..0ec7c3d888 100644 --- a/src/panels/lovelace/cards/hui-iframe-card.ts +++ b/src/panels/lovelace/cards/hui-iframe-card.ts @@ -80,6 +80,11 @@ export class HuiIframeCard extends LitElement implements LovelaceCard { `; } + let sandbox_user_params = ""; + if (this._config.allow_open_top_navigation) { + sandbox_user_params += "allow-top-navigation-by-user-activation"; + } + return html`
diff --git a/src/panels/lovelace/cards/types.ts b/src/panels/lovelace/cards/types.ts index 0d58baffa7..3e5918b263 100644 --- a/src/panels/lovelace/cards/types.ts +++ b/src/panels/lovelace/cards/types.ts @@ -247,6 +247,7 @@ export interface HumidifierCardConfig extends LovelaceCardConfig { } export interface IframeCardConfig extends LovelaceCardConfig { + allow_open_top_navigation?: boolean; aspect_ratio?: string; title?: string; url: string; diff --git a/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts index 8e53668e29..43d7223308 100644 --- a/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-iframe-card-editor.ts @@ -1,7 +1,7 @@ import "../../../../components/ha-form/ha-form"; import { html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; -import { assert, assign, object, optional, string } from "superstruct"; +import { assert, assign, boolean, object, optional, string } from "superstruct"; import { fireEvent } from "../../../../common/dom/fire_event"; import type { SchemaUnion } from "../../../../components/ha-form/types"; import type { HomeAssistant } from "../../../../types"; @@ -15,6 +15,7 @@ const cardConfigStruct = assign( title: optional(string()), url: optional(string()), aspect_ratio: optional(string()), + allow_open_top_navigation: optional(boolean()), }) );