[
{
"id": 20836,
"label": "Nome do app",
"name": "APP_NAME",
"value": "Invictus VPN",
"type": "STRING",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20837,
"label": "Logo do app",
"name": "APP_LOGO",
"value": "",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20838,
"label": "Imagem de fundo",
"name": "APP_BACKGROUND_IMAGE",
"value": "https://i.ibb.co/0nZCjf3/IMG-20240705-192733-024.jpg",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20839,
"label": "Tipo do fundo do app",
"name": "APP_BACKGROUND_TYPE",
"value": {
"options": [
{
"label": "Imagem",
"value": "IMAGE"
},
{
"label": "Cor",
"value": "COLOR"
}
],
"selected": "IMAGE"
},
"type": "SELECT",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20840,
"label": "Cor de fundo",
"name": "APP_BACKGROUND_COLOR",
"value": "#ffffff2b",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20841,
"label": "Cor do card inicial",
"name": "APP_CARD_COLOR",
"value": "#0000009b",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20842,
"label": "Raio do card inicial",
"name": "APP_CARD_RADIUS",
"value": 20,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20843,
"label": "Cor do card de status",
"name": "APP_CARD_STATUS_COLOR",
"value": "#0000009b",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20844,
"label": "Raio do card de status",
"name": "APP_CARD_STATUS_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20845,
"label": "Cor do card de configurações",
"name": "APP_CARD_CONFIG_COLOR",
"value": "#3b3100c4",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20846,
"label": "Cor do fundo dos dialogs",
"name": "APP_DIALOG_BACKGROUND_COLOR",
"value": "#3b3100c4",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20847,
"label": "Cor do fundo do dialog de log",
"name": "APP_DIALOG_LOGGER_COLOR",
"value": "#3b3100c4",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20848,
"label": "Cor das bordas",
"name": "APP_BORDER_COLOR",
"value": "#FFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20849,
"label": "Cor dos inputs",
"name": "APP_INPUT_COLOR",
"value": "#000000dd",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20850,
"label": "Raio dos inputs",
"name": "APP_INPUT_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20851,
"label": "Cor dos textos",
"name": "APP_TEXT_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20852,
"label": "Cor dos botões",
"name": "APP_BUTTON_COLOR",
"value": "#000000ff",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20853,
"label": "Raio dos botões",
"name": "APP_BUTTON_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20854,
"label": "Cor dos icones",
"name": "APP_ICON_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20855,
"label": "Exibir modo de conexão",
"name": "APP_SHOW_CONNECTION_MODE",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 38735,
"label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
"name": "APP_CONFIG_AUTO_UPDATE",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20856,
"label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
"name": "APP_AUTO_START",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20857,
"label": "Usar limiter de conexão",
"name": "APP_CONNECTION_LIMITER",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20858,
"label": "Usar botão de atualizações",
"name": "APP_BTN_UPDATE_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20859,
"label": "Usar botão de registros",
"name": "APP_BTN_LOGGER_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20860,
"label": "Usar botão de pagina webview",
"name": "APP_BTN_PAGE_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20861,
"label": "Ativar dialog de erros",
"name": "APP_DIALOG_ERROR_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20862,
"label": "Ativar dialog de checkuser",
"name": "APP_CHECKUSER_DIALOG_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20863,
"label": "Ativar toast de sucesso",
"name": "APP_SUCCESS_TOAST_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20864,
"label": "Ativar toast de erro",
"name": "APP_ERROR_TOAST_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20865,
"label": "Usar layout webview",
"name": "APP_LAYOUT_WEBVIEW_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20866,
"label": "Mensagem",
"name": "APP_MESSAGE",
"value": "Sejam bem vindos!!! Não compartilhe login ou faça uso de Torrent, sistema detecta automaticamente e faz bloqueio do LOGIN sem direito a reembolso.",
"type": "TEXT",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20867,
"label": "URL de atualização do aplicativo",
"name": "APP_UPDATE_URL",
"value": null,
"type": "URL",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20868,
"label": "Tipo de mensagem",
"name": "APP_MESSAGE_TYPE",
"value": {
"options": [
{
"label": "Alerta",
"value": "ALERT"
},
{
"label": "Informação",
"value": "INFO"
},
{
"label": "Boas vindas",
"value": "WELCOME"
},
{
"label": "Sem mensagem",
"value": "NONE"
}
],
"selected": "WELCOME"
},
"type": "SELECT",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20869,
"label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_LAYOUT_WEBVIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20870,
"label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_SUPPORT_BUTTON",
"value": "<!DOCTYPE html>\n<html lang=\"pt-BR\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n <title>5711434575 - @InvictuS_IPTV_SSH | @alexdsgmoura</title>\n\n <style>\n :root {\n font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n font-weight: 400;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n\n --space-status-bar: 10px;\n --space-navigation-android-bar: 30px;\n }\n\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n html,\n body,\n main {\n width: 100%;\n height: 100%;\n }\n\n main {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 35px;\n\n padding-top: var(--space-status-bar);\n padding-bottom: var(--space-navigation-android-bar);\n\n background: transparent;\n }\n\n section.container {\n width: 100%;\n max-width: 700px;\n height: auto;\n\n margin-top: auto;\n }\n\n section.container div.container-button {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n\n margin: 0px auto;\n padding: 0px 5px;\n }\n\n section.container div.container-button button {\n width: 18%;\n min-width: 35px;\n max-width: 65px;\n height: 55px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n\n padding: 0px;\n\n border: 1px solid #000000;\n border-radius: 10px;\n\n background-color: #ffcc00;\n }\n\n section.container div.container-button button svg {\n width: 20px;\n height: 25px;\n\n color: #000000;\n\n transform: scale(1);\n }\n\n section.container div.container-button button span {\n width: 100%;\n\n color: #000000;\n font-size: 6px;\n text-transform: uppercase;\n }\n\n section.container-network {\n width: 100%;\n height: auto;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 5px;\n }\n\n section.container-network div {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n }\n\n section.container-network span {\n color: #FFFFFF;\n text-shadow: 2px 2px 4px #000000;\n }\n\n section.container-network div svg {\n color: #FFFFFF;\n text-shadow: 2px 2px 4px #000000;\n }\n\n @media (min-width: 281px) {\n section.container div.container-button button span {\n font-size: 8px;\n }\n }\n\n @media (min-width: 361px) {\n section.container div.container-button button span {\n font-size: 9px;\n }\n }\n\n @media (min-width: 376px) {\n section.container div.container-button button svg {\n width: 25px;\n height: 25px;\n }\n\n section.container div.container-button button span {\n font-size: 9px;\n }\n }\n </style>\n </head>\n <body>\n <main>\n <section class=\"container\">\n <div class=\"container-button\">\n <button type=\"button\" title=\"Limpar dados do app\" id=\"clear-data-app\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-trash\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z\"\n />\n <path\n d=\"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z\"\n />\n </svg>\n\n <span>Limpar APP</span>\n </button>\n\n <button type=\"button\" title=\"renovação\" id=\"renew\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-credit-card\" viewBox=\"0 0 16 16\">\n <path d=\"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z\"/>\n <path d=\"M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z\"/>\n </svg>\n\n <span>Renovar</span>\n </button>\n\n <button type=\"button\" title=\"speedtest\" id=\"speedtest\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-cloud-lightning\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M13.405 4.027a5.001 5.001 0 0 0-9.499-1.004A3.5 3.5 0 1 0 3.5 10H13a3 3 0 0 0 .405-5.973zM8.5 1a4 4 0 0 1 3.976 3.555.5.5 0 0 0 .5.445H13a2 2 0 0 1 0 4H3.5a2.5 2.5 0 1 1 .605-4.926.5.5 0 0 0 .596-.329A4.002 4.002 0 0 1 8.5 1zM7.053 11.276A.5.5 0 0 1 7.5 11h1a.5.5 0 0 1 .474.658l-.28.842H9.5a.5.5 0 0 1 .39.812l-2 2.5a.5.5 0 0 1-.875-.433L7.36 14H6.5a.5.5 0 0 1-.447-.724l1-2z\"\n />\n </svg>\n\n <span>SpeedTest</span>\n </button>\n\n <button type=\"button\" title=\"configurar apn\" id=\"configuration-apn\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-sd-card\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M6.25 3.5a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2zm2 0a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2z\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M5.914 0H12.5A1.5 1.5 0 0 1 14 1.5v13a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 14.5V3.914c0-.398.158-.78.44-1.06L4.853.439A1.5 1.5 0 0 1 5.914 0zM13 1.5a.5.5 0 0 0-.5-.5H5.914a.5.5 0 0 0-.353.146L3.146 3.561A.5.5 0 0 0 3 3.914V14.5a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-13z\"\n />\n </svg>\n\n <span>Config APN</span>\n </button>\n\n <button type=\"button\" title=\"abrir youtube\" id=\"youtube\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-youtube\" viewBox=\"0 0 16 16\">\n <path d=\"M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z\"/>\n </svg>\n\n <span>YOUTUBE</span>\n </button>\n </div>\n </section>\n\n <section class=\"container-network\">\n <span>Seu IP:</span>\n\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-wifi\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M15.384 6.115a.485.485 0 0 0-.047-.736A12.444 12.444 0 0 0 8 3C5.259 3 2.723 3.882.663 5.379a.485.485 0 0 0-.048.736.518.518 0 0 0 .668.05A11.448 11.448 0 0 1 8 4c2.507 0 4.827.802 6.716 2.164.205.148.49.13.668-.049z\"\n />\n <path\n d=\"M13.229 8.271a.482.482 0 0 0-.063-.745A9.455 9.455 0 0 0 8 6c-1.905 0-3.68.56-5.166 1.526a.48.48 0 0 0-.063.745.525.525 0 0 0 .652.065A8.46 8.46 0 0 1 8 7a8.46 8.46 0 0 1 4.576 1.336c.206.132.48.108.653-.065zm-2.183 2.183c.226-.226.185-.605-.1-.75A6.473 6.473 0 0 0 8 9c-1.06 0-2.062.254-2.946.704-.285.145-.326.524-.1.75l.015.015c.16.16.407.19.611.09A5.478 5.478 0 0 1 8 10c.868 0 1.69.201 2.42.56.203.1.45.07.61-.091l.016-.015zM9.06 12.44c.196-.196.198-.52-.04-.66A1.99 1.99 0 0 0 8 11.5a1.99 1.99 0 0 0-1.02.28c-.238.14-.236.464-.04.66l.706.706a.5.5 0 0 0 .707 0l.707-.707z\"\n />\n </svg>\n\n <span id=\"local-ip\">192.168.0.1</span>\n </div>\n </section>\n </main>\n\n <!-- DOM WRAPPER -->\n <script>\n const Dom = (selector) => {\n const _elements = document.querySelectorAll(selector)\n\n const wrapper = {\n on(listeners) {\n for (const [event, listener] of Object.entries(listeners)) {\n _elements.forEach((element) => {\n element.addEventListener(event, listener)\n })\n }\n\n return wrapper\n },\n html(value) {\n _elements.forEach((element) => (element.innerHTML = value))\n return wrapper\n },\n }\n\n return wrapper\n }\n </script>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const dtStatusBarHeight = () => DtGetStatusBarHeight.execute()\n const dtNavHeight = () => DtGetNavigationBarHeight.execute()\n\n const dtApnConfig = () => DtStartApnActivity.execute()\n const dtBatteryOptimization = () => DtIgnoreBatteryOptimizations.execute()\n const dtCleanApp = () => DtCleanApp.execute()\n\n const dtRadioInfo = () => {\n if (typeof Android?.openRadioInfo === 'function') {\n Android.openRadioInfo()\n } else {\n DtStartRadioInfoActivity.execute()\n }\n }\n const dtGetNetworkName = () => Android.getNetworkName()\n const dtGetNetworkLocalIp = () => Android.getLocalIP()\n\n const dtWebView = () => DtStartWebViewActivity.execute()\n const dtUrlWebview = (url) => {\n if (typeof DtStartWebViewActivity?.execute === 'function') {\n DtStartWebViewActivity?.execute(url)\n } else {\n document.location.href = url\n }\n }\n </script>\n\n <!-- VARIAVEIS ROOT -->\n <script>\n document.documentElement.style.setProperty(\n '--space-status-bar',\n `${dtStatusBarHeight() + 10}px`\n )\n\n document.documentElement.style.setProperty(\n '--space-navigation-android-bar',\n `${dtNavHeight() + 10}px`\n )\n </script>\n\n <!-- VARIAVEIS -->\n <script>\n const clearDataAppButton = Dom('#clear-data-app')\n const renewButton = Dom('#renew')\n const speedtestButton = Dom('#speedtest')\n const apnConfigButton = Dom('#configuration-apn')\n const youtubeButton = Dom('#youtube')\n\n const localIp = Dom('#local-ip')\n </script>\n\n <!-- FUNÇÕES DO LAYOUT -->\n <script>\n const writeLocalIp = () => {\n let ip = 'Localizando IP'\n\n setInterval(() => {\n ip = dtGetNetworkLocalIp() ?? 'Localizando IP'\n localIp.html(dtGetNetworkLocalIp())\n }, 500)\n\n return ip\n }\n </script>\n\n <!-- AÇÕES -->\n <script>\n clearDataAppButton.on({ click: () => dtCleanApp() })\n renewButton.on({ click: () => dtUrlWebview('https://digitalvpn.online/renovar.php') })\n speedtestButton.on({ click: () => dtUrlWebview('https://fast.com/pt/') })\n apnConfigButton.on({ click: () => dtApnConfig() })\n youtubeButton.on({ click: () => dtUrlWebview('https://youtu.be') })\n\n localIp.html(writeLocalIp())\n </script>\n </body>\n</html>",
"type": "HTML",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
},
{
"id": 20871,
"label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_WEB_VIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "ff477647-61b1-48e1-b2b8-3ea067dc6a8c"
}
]