← 返回

应用详情

文本浏览器(文本复制)

版本 v1 · 1.6 KB
ID: textbrowser_copy
⬇ 下载 CIP 🔍 返回列表
📝 应用描述
只支持纯文本的浏览器,但将文本换成了输入框以便复制
📋 详细信息
应用ID textbrowser_copy
名称 文本浏览器(文本复制)
版本 v1
文件大小 1.6 KB
上传时间 2026-07-30 13:37:17
状态 ✅ 已启用
权限 network, network_external
允许主机 *
💡 界面预览 (main.lua)
📄 Lua 源码
return ui.page({
    children = {
        ui.input({
            id = "urlinput",
            hint = "请输入网址",
            text = "http://", -- 默认填一个可用的外部 API 做演示;不用了就http://就行
            single_line = true
        }),
        ui.button({
            id = "startbutton",
            text = "访问",
            on_click = function()
                -- 1. 获取用户输入的 URL
                local url = app.get_text("urlinput")
                
                -- 2. 简单校验:如果没填或者只填了 http://,提示并阻止;就不用校验了,用户应该不全是啥子
                --if not url or url == "" or url == "http://" or url == "https://" then
                    --app.toast("请输入有效的完整网址")
                    --return
                --end

                -- 3. 界面反馈:置灰按钮,显示加载中;这一步也不用了,只显示一个加载中就可以了
                --app.set_enabled("startbutton", false)
                app.set_text("loadingtext", "加载中")
                --app.set_text("errtext", "")
                --app.toast("加载中")

                -- 4. 发起异步网络请求(关键:所有后续逻辑必须塞在回调里)
                app.http_get(url, function(body, err)
                    -- 无论成败,先恢复按钮状态;刚刚置灰按钮那一步不用了这一步也不需要了
                    --app.set_enabled("startbutton", true)

                    -- 5. 判断成功还是失败(必须写 else 分支!)
                    if body then
                        -- 成功:截取前 500 字符防止 UI 卡顿,并显示在 bodytext;不截取了,显示完整内容
                        --local display_body = string.sub(body, 1, 500)
                        --if #body > 500 then
                            --display_body = display_body .. "\n... (内容过长已截断)"
                        --end
                        app.set_text("bodytext", body)
                        app.set_text("errtext", err)
                app.set_text("loadingtext", "加载完毕")
                    else
                        -- 失败:显示错误信息
                        app.set_text("bodytext", body)
                        app.set_text("errtext", err)
                app.set_text("loadingtext", "加载失败")
                    end
                end)
            end
        }),
        ui.text({
            id = "loadingtext",
        }),
        ui.input({
            id = "bodytext",
            hint="网页内容",
            --text = "等待请求...",
            --size = 14,
            --margin = 8
        }),
        ui.input({
            id = "errtext",
            hint="报错信息",
            --text = "状态: 就绪",
            --size = 12,
            --color = "#888888",
            --margin = 8
        })
    }
})
⬇ 下载 CIP 文件 🔍 返回列表