feat: add uixt tool list_packages

This commit is contained in:
lilong.129
2025-05-21 16:24:54 +08:00
parent 044eb07a35
commit 495443a2c4
7 changed files with 49 additions and 1 deletions

View File

@@ -303,6 +303,10 @@ func (dev *AndroidDevice) GetCurrentWindow() (windowInfo types.WindowInfo, err e
return types.WindowInfo{}, errors.New("failed to extract current window")
}
func (dev *AndroidDevice) ListPackages() ([]string, error) {
return dev.Device.ListPackages()
}
func (dev *AndroidDevice) GetPackageInfo(packageName string) (types.AppInfo, error) {
appInfo := types.AppInfo{
Name: packageName,

View File

@@ -57,6 +57,10 @@ func (dev *BrowserDevice) Uninstall(packageName string) error {
return errors.New("not support")
}
func (dev *BrowserDevice) ListPackages() ([]string, error) {
return nil, errors.New("not support")
}
func (dev *BrowserDevice) GetPackageInfo(packageName string) (types.AppInfo, error) {
return types.AppInfo{}, errors.New("not support")
}

View File

@@ -18,6 +18,8 @@ type IDevice interface {
Install(appPath string, opts ...option.InstallOption) error
Uninstall(packageName string) error
ListPackages() ([]string, error)
GetPackageInfo(packageName string) (types.AppInfo, error)
ScreenShot() (*bytes.Buffer, error)
// TODO: remove?

View File

@@ -95,6 +95,10 @@ func (dev *HarmonyDevice) Uninstall(packageName string) error {
return nil
}
func (dev *HarmonyDevice) ListPackages() ([]string, error) {
return nil, errors.New("not implemented")
}
func (dev *HarmonyDevice) GetPackageInfo(packageName string) (types.AppInfo, error) {
log.Warn().Msg("get package info not implemented for harmony device, skip")
return types.AppInfo{}, nil

View File

@@ -317,6 +317,18 @@ func (dev *IOSDevice) GetDeviceInfo() (*DeviceDetail, error) {
return detail, err
}
func (dev *IOSDevice) ListPackages() ([]string, error) {
apps, err := dev.ListApps(ApplicationTypeAny)
if err != nil {
return nil, err
}
var packages []string
for _, app := range apps {
packages = append(packages, app.CFBundleIdentifier)
}
return packages, nil
}
func (dev *IOSDevice) ListApps(appType ApplicationType) (apps []installationproxy.AppInfo, err error) {
svc, _ := installationproxy.New(dev.DeviceEntry)
defer svc.Close()