Skip to main content

程序

模式兼容性

本模块部分方法通用(app_startscheme_startget_uuidget_ios_versionget_ip_addressnotifyset_clipboardget_clipboard),部分方法仅 WDA 模式可用(app_stopapp_currentlockunlockis_lockedopen_url)。

from ascript.ios import system

启动应用

打开已安装的应用。支持通过 名称Bundle IDURL Scheme 三种方式启动。

  • 函数
system.app_start(bundle_id: str = None, scheme: str = None, name: str = None,
arguments: typing.List[str] = [], environment: typing.Dict[str, str] = {})
参数类型是否必填说明
bundle_idstrBundle ID,如 "com.tencent.xin"
schemestrURL Scheme,如 "weixin://"
namestrApp 名称,如 "微信"
argumentsList[str]启动参数
environmentDict[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://")
启动顺序

内部会按以下优先级尝试启动:

  1. URL Scheme 启动
  2. 名称 → 查表转 Bundle ID → Scheme 启动
  3. LSApplicationWorkspace 直接启动
  4. WDA 回退启动

停止应用

关闭已打开的应用

  • 函数
system.app_stop(bundle_id: str)
参数类型是否必填说明
bundle_idstr应用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)
参数类型是否必填说明
schemestrscheme 协议内容
  • 示例
from ascript.ios import system

system.scheme_start("ctrip://......")

打开网页

用Siri搜索网址

  • 函数
system.open_url(url:str)
  • 参数
参数类型是否必填说明
urlstr启动的网址 如:(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")
  • 参数
参数类型是否必填说明
msgstr消息体
titlestr通知标题,默认当前APP名称
_idstr消息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_idstr应用的Bundle ID
  • 返回值

int 应用状态:1=未运行, 2=后台运行, 4=前台运行

  • 示例
from ascript.ios import system
state = system.app_state("com.tencent.xin")
print("微信状态:", state)

暂停当前应用

暂时将当前应用退到后台,指定时间后恢复

  • 函数
system.deactivate(duration)
参数类型是否必填说明
durationfloat暂停时间(秒)
  • 示例
from ascript.ios import system
system.deactivate(3) # 暂停3秒

获取应用URL Scheme

获取指定应用的URL Scheme

  • 函数
system.get_app_scheme(bundle_id=None, name=None)
参数类型是否必填说明
bundle_idstr应用的Bundle ID
namestr应用名称
  • 返回值

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()