Skip to content

✨ 新增网页视图模块#27

Merged
A-kirami merged 4 commits into
mainfrom
webview
Sep 6, 2023
Merged

✨ 新增网页视图模块#27
A-kirami merged 4 commits into
mainfrom
webview

Conversation

@A-kirami

@A-kirami A-kirami commented Sep 6, 2023

Copy link
Copy Markdown
Owner

这个 PR 带来了什么样的更改?

  • 错误修复
  • 新功能
  • 文档/注释
  • 代码格式
  • 代码重构
  • 测试用例
  • 性能优化
  • 外观样式
  • 项目构建
  • 依赖环境
  • 持续集成/部署
  • 其他,请描述:

这个 PR 是否存在破坏性变更?

  • 是的,并已在 issue #___ 号中获得批准
  • 没有

描述

webview 模块可以通过查询参数传递数据链接,页面再请求此链接以获取数据

from kirami import on_fullmatch
from kirami.typing import Matcher
from kirami.utils import WebView

wv = WebView("/view", "dist")


@on_fullmatch("webview")
async def webview(matcher: Matcher) -> None:
    url = wv.render("/", title="Kirami", num=233)
    await matcher.send(str(url))

网页需要从 url 中获取查询参数

const params = new URLSearchParams(window.location.search);
const dataUrl = params.get('data_url');
data = await fetch(dataUrl).then(res => res.json());  // {title="Kirami", num=233}

前端项目需要配置公共基础路径为 /webview/{path}

以 Vite 的配置为例:

export default defineConfig({
  // ...
  base: "/webview/view"
})

动机和背景

在不使用 jinja2 的情况下,缺少能够传递参数到页面的手段

其他信息

检查工作

  • 我对我的代码进行了注释,特别是在难以理解的部分
  • 我的更改需要更新文档,并且已对文档进行了相应的更改
  • 我添加了测试并且已经在本地通过,以证明我的修复补丁或新功能有效
  • 我已检查并确保更改没有与其他打开的 Pull Requests 重复

@A-kirami A-kirami added the enhancement New feature or request label Sep 6, 2023
@A-kirami
A-kirami merged commit 97abe1b into main Sep 6, 2023
@A-kirami
A-kirami deleted the webview branch September 6, 2023 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant