JS-API
IDEPY框架预定义了一JS-API拓展功能,可通过以下方式导入并使用。
python调用相关方法
from idepy_next import WindowAPI
# 主窗口通讯API
class MainWindow(WindowAPI)
def test(self):
print(self.web_data)
# 获取当前窗口对象
super()._window()
JavaScript调用相关方法
// html内相关事件也可以通过该方法调用。
api.iglobal_window_close()
// 通过pywebview自身对象调用
pywebview.api.iglobal_window_close()
html调用相关方法
// 直接通过api、idepy调用
<a class="text-primary " onclick="api.check_verity()">刷新信息</a>
// vue调用
<a class="text-primary " @click="api.check_verity()">刷新信息</a>
API
预定义了一批功能函数,并将部分内容暴漏给网页,JS可通过api.xxx或idepy.api.xxx调用相关方法,python可以在MainWindow类内部或窗口js_api对象进行调用。
使用_前缀预定义的函数,仅支持python自身调用。
get_config_data
获取配置数据
update_config
更新程序配置数据,并返回更新后的数据
get_data
获取页面数据
set_data
设置页面数据
update_web_data
更新页面数据,js、python都可以通过调用该函数更新数据。
key: 需要更新的数据项
value: 需要更新的数据值
refresh: 立即同步数据到JavaScript,默认为True
iglobal_proxy_request_get
用python代理请求特定内容,并将结果返回给JS
url: 请求的链接
params: 请求的参数
headers: 请求头
cookies: 使用的cookie
timeout: 超时时间,默认为60s
return {"status": 请求状态码, "data": 数据}
iglobal_proxy_request_post
用python代理请求特定内容,并将结果返回给JS
url: 请求的链接
request_data: 请求的数据
headers: 请求头
cookies: 使用的cookie
timeout: 超时时间,默认为60s
return {"status": 请求状态码, "data": 数据}
iglobal_proxy_request_json
用python代理请求特定内容,使用JSON数据格式请求,并将结果返回给JS
url: 请求的链接
request_data: 请求的数据
headers: 请求头
cookies: 使用的cookie
timeout: 超时时间,默认为60s
return {"status": 请求状态码, "data": 数据}
iglobal_window_close
关闭当前窗口对象
iglobal_window_minimize
最小化当前窗口
iglobal_window_maximize
最大化当前窗口
iglobal_window_hide
隐藏当前窗口
iglobal_window_show
显示当前窗口
iglobal_clear_cookies
清理cookie
提示
后面的方法只能由python调用
_refresh_config_data
更新配置数据到网页。
_refresh_web_data
更新self.web_data数据到网页。
_update_data
更新self.web_data的特定数据,并刷新。
key: 更新数据的键
value: 更新数据的值
refresh: 立即刷新网页数据。
_call_js_func
调用js函数,并返回结果,该函数是同步的,会自动解析json结构。
fuc_name: 函数名
*args: 放置函数的位置参数,不支持命名参数。
_call_js_func_async
调用js函数,并返回结果,该函数是异步的,会自动解析json结构。
fuc_name: 函数名
callback: 回调函数
*args: 放置函数的位置参数,不支持命名参数。
_set_js_variable
设置window对象特定变量名的值
fuc_name:变量名
data:变量值
_get_js_variable
返回全局变量特定值,该函数是同步的。
fuc_name:变量名
_serialize_elements
序列化页面元素的值,便于配置的保存
elements_selector: 要序列化的元素的选择
_deserialize_elements
反序列化数据到页面,便于配置恢复
serialize_data_str: 序列化的数据文本
_window
返回当前窗口对象。