Skip to main content

网页窗口

制作用户交互界面

此网页窗口, 使用 WebView 展示 Html页面 ,需要开发者掌握一定 html知识.

开启窗口后,使用 JavaScript 可以和Python语言交互与通信.

方法

创建窗口

创建一个WebUI交互窗口,窗口依赖Html

  • 函数
WebWindow(html:str,tunnel=None)
  • 参数
参数类型是否必填说明
htmlstrhtml的路径,可以是html文件.也可以是http地址
tunnelfunction和javascript交换消息的通道. 该函数必须包含两个str形参
  • 示例
from ascript.ios.ui import WebWindow
ui = WebWindow("http://www.ascript.cn")

显示窗口

创建一个WebUI交互窗口,窗口依赖Html

  • 函数
WebWindow(...).show()
  • 示例
# 显示一个webUI
from ascript.ios.ui import WebWindow
ui = WebWindow("http://www.ascript.cn")
ui.show()
# 显示一个UI ,并创建一个消息通道
from ascript.ios.ui import WebWindow

def tunner(key,value):
print(key,value) # 这里是 javascript 发过来的消息

ui = WebWindow("http://www.ascript.cn",tunner)
ui.show()

关闭窗口

关闭一个正在显示的UI窗口

  • 函数
WebWindow(...).close()
  • 示例
from ascript.ios.ui import WebWindow
ui = WebWindow("http://www.ascript.cn")
ui.close()

Python 调用 Javascript 函数

  • 函数
WebWindow(...).call(jsfun:str)
参数类型是否必填说明
jsfunstrjs的函数名以及参数
  • 示例

html代码

<!doctype html>
<html lang="zh-CN">
<head>
<!-- 必须的 meta 标签 -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<script>
// 注意这里 创建一个javascript方法, 等待 python 调用
function a(msg){
alert(msg)
}
</script>
</body>
</html>

python 代码

from ascript.ios.ui import WebWindow
from ascript.ios.system import R

def tunner(key,value):
print(key,value)
if key == "__onload__":
print("网页加载完毕,可以调用js方法了")
ui.call('a("调用了js")')


ui = WebWindow(R.ui("a.html"),tunner)
ui.show()

Javascript 方法

我们在JavaScript 中内置了一个 ascript对象.

通过这个对象,可以控制窗口,获取本地缓存数据,以及发送消息给python.

发送消息给Python

我们可以在用户输入信息,并点击确定后发送数据给python

  • 函数
ascript.call(key,value)
参数类型是否必填说明
keystr传递给python的key,最好唯一.做逻辑判断处理
valuestr传递给python 数据,如果是js对象,请用 JSON格式化后发送.
  • 示例

html 代码

<!doctype html>
<html lang="zh-CN">
<head>
<!-- 必须的 meta 标签 -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<button id="send" onclick="send_to_py()" >发送</button>

<script>
function send_to_py(){
ascript.call("click","我是js发送给python的数据")
}
</script>

</body>
</html>

python 代码

from ascript.ios.ui import WebWindow
from ascript.ios.system import R

def tunner(key,value):
print(key,value)

ui = WebWindow(R.ui("a.html"),tunner)
ui.show()

关闭窗口

在网页中主动关闭窗口

  • 函数
ascript.close()

存储数据

和 python的 KeyValue 数据互通

与 ascript.ios.system.KeyValue 存储的数据互通

  • 函数
ascript.save("ui","数据123")

获取数据

和 python的 KeyValue 数据互通

与 ascript.ios.system.KeyValue 存储的数据互通

  • 函数
ascript.get("ui")