程序
模式兼容性
本模块部分方法通用(app_start、scheme_start、get_uuid、get_ios_version、get_ip_address、notify、set_clipboard、get_clipboard),部分方法仅 WDA 模式可用(app_stop、app_current、lock、unlock、is_locked、open_url)。
from ascript.ios import system
启动应用
打开已安装的应用。支持通过 名称、Bundle ID、URL Scheme 三种方式启动。
- 函数
system.app_start(bundle_id: str = None, scheme: str = None, name: str = None,
arguments: typing.List[str] = [], environment: typing.Dict[str, str] = {})
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| bundle_id | str | 否 | Bundle ID,如 "com.tencent.xin" |
| scheme | str | 否 | URL Scheme,如 "weixin://" |
| name | str | 否 | App 名称,如 "微信" |
| arguments | List[str] | 否 | 启动参数 |
| environment | Dict[str, str] | 否 | 环境变量 |
智能判断
第一个参数会自动识别:含 . 当作 bundle_id,不含 . 当作 App 名称。所以大部分情况直接传一个参数即可。
已内置 420+ 个常用 App 的名称 、Bundle ID 和 URL Scheme 映射,点击查看完整列表。
- 示例
from ascript.ios import system
# 通过名称启动(最简单)
system.app_start("微信")
# 通过 Bundle ID 启动
system.app_start(bundle_id="com.tencent.xin")
# 通过 URL Scheme 启动
system.app_start(scheme="weixin://")
启动顺序
内部会按以下优先级尝试启动:
- URL Scheme 启动
- 名称 → 查表转 Bundle ID → Scheme 启动
- LSApplicationWorkspace 直接启动
- WDA 回退启动
停止应用
关闭已打开的应用
- 函数
system.app_stop(bundle_id: str)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| bundle_id | str | 是 | 应用id |
- 示例
from ascript.ios import system
# 停止某信
system.app_stop(bundle_id="com.tencent.xin")
获取当前运行应用
获取当前运行的app
- 函数
system.app_current()
- 返回值
AppInfo对象 包行 name,pid,process_arguments,bundle_id 属性.
- 示例
from ascript.ios import system
app = system.app_current()
print(app)
print("名称:", app.name)
print("进程:", app.pid)
print("进程参数:", app.process_arguments)
print("应用id:", app.bundle_id)
启动scheme
打开scheme 协议
如无法打开,请联系官方,告知协议头.
- 函数
system.scheme_start(scheme:str)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| scheme | str | 是 | scheme 协议内容 |
- 示例
from ascript.ios import system
system.scheme_start("ctrip://......")
打开网页
用Siri搜索网址
- 函数
system.open_url(url:str)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| url | str | 是 | 启动的网址 如:(http://www.airscript.com) |
- 示例
# 案例:打开AirSctipt 官网
#导包
from ascript.ios import system
# 输入网址,用Siri搜索
system.open_url("http://www.airscript.cn")
是否锁屏
判断当前设备的锁屏状态
- 函数
system.is_locked()
- 返回值
True:已锁屏 ,False:已解锁
- 示例
#导包
from ascript.ios import system
res = system.is_locked()
if res:
print("已经锁屏")
else:
print("已解锁屏幕")
锁屏
设备立刻锁屏
- 函数
system.lock()
- 示例
#导包
from ascript.ios import system
system.lock()
解锁屏幕
设备立刻解锁屏幕
锁屏密码
如果设置有锁屏密码,则会点亮屏幕,阻塞程序. 直到用户输入锁屏密码
- 函数
system.unlock()
- 示例
#导包
from ascript.ios import system
system.unlock()
发送系统通知
该方法只在AScript在后台时生效.
发送手机通知
- 函数
system.notify(msg: str, title: str = None, _id: str = "9096")
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| msg | str | 是 | 消息体 |
| title | str | 否 | 通知标题,默认当前APP名称 |
| _id | str | 否 | 消息ID,默认"9096".相同的id,通知会覆盖 |
- 示例
from ascript.ios import system
system.notify("我弹出来了,小老弟")
获取UUID
UUID 和 UDID不同,但也可以用来判断设备的唯一性
- 函数
system.get_uuid()
- 示例
from ascript.ios import system
uuid = system.get_uuid()
print(uuid)
获取IOS系统版本
可以获取IOS系统的版本号
- 函数
system.get_ios_version()
- 示例
from ascript.ios import system
version = system.get_ios_version()
print(version)
获取IP地址
可以获取当前wifi的ip地址
- 函数
system.get_ip_address()
- 示例
from ascript.ios import system
address = system.get_ip_address()
print(address)
获取已安装应用列表
获取设备上所有已安装的应用列表
- 函数
system.app_list()
- 返回值
list 已安装应用信息列表
- 示例
from ascript.ios import system
apps = system.app_list()
for app in apps:
print(app)
获取应用运行状态
获取指定应用的当前运行状态
- 函数
system.app_state(bundle_id)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| bundle_id | str | 是 | 应用的Bundle ID |
- 返回值
int 应用状态:1=未运行, 2=后台运行, 4=前台运行
- 示例
from ascript.ios import system
state = system.app_state("com.tencent.xin")
print("微信状态:", state)
暂停当前应用
暂时将当前应用退到后台,指定时间后恢复
- 函数
system.deactivate(duration)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| duration | float | 是 | 暂停时间(秒) |
- 示例
from ascript.ios import system
system.deactivate(3) # 暂停3秒
获取应用URL Scheme
获取指定应用的URL Scheme
- 函数
system.get_app_scheme(bundle_id=None, name=None)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| bundle_id | str | 否 | 应用的Bundle ID |
| name | str | 否 | 应用名称 |
- 返回值
str URL Scheme字符串,未找到返回空字符串
- 示例
from ascript.ios import system
scheme = system.get_app_scheme(name="微信")
print(scheme) # weixin://
停止当前模块
停止当前正在运行的脚本模块
- 函数
system.exit()
- 示例
from ascript.ios import system
# 满足条件后退出脚本
system.exit()
重启设备
- 函数
system.reboot()
- 示例
from ascript.ios import system
system.reboot()
剪贴板
设置剪贴板
system.set_clipboard(content)
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| content | str | 是 | 写入剪贴板的内容 |
from ascript.ios import system
system.set_clipboard("hello")
获取剪贴板
system.get_clipboard()
from ascript.ios import system
text = system.get_clipboard()
print(text)
屏幕信息
获取屏幕尺寸
system.screen_size()
返回当前屏幕物理像素尺寸。
from ascript.ios import system
w, h = system.screen_size()
print(w, h)
获取屏幕方向
system.screen_orientation()
from ascript.ios import system
ori = system.screen_orientation()
print(ori)