|  | 
 
| 
 ![AIWROKÆ»¹ûIOSÏßÌõÀà[Line]¸´ÔÓʾÀý B2BÍøÂçÈí¼þ  AIWROKÆ»¹ûIOSÏßÌõÀà[Line]¸´ÔÓʾÀý B2BÍøÂçÈí¼þ](static/image/common/none.gif)  ![AIWROKÆ»¹ûIOSÏßÌõÀà[Line]¸´ÔÓʾÀý B2BÍøÂçÈí¼þ  AIWROKÆ»¹ûIOSÏßÌõÀà[Line]¸´ÔÓʾÀý B2BÍøÂçÈí¼þ](static/image/common/none.gif)  
 
 ¸´ÖÆ´úÂë// ¸´ÔÓÓ¦ÓÿØÖÆÆ÷ʾÀý
// Õâ¸öʾÀýչʾÈçºÎ´´½¨Ò»¸ö¶à±êǩҳµÄÓ¦ÓÿØÖÆÆ÷£¬½áºÏUI½çÃæºÍHIDÉ豸²Ù×÷¹¦ÄÜ
// 1. ´´½¨TabView×÷ΪÖ÷½çÃæÈÝÆ÷
var mainTabView = new TabView();
// 2. ÉèÖñêǩҳ±êÌâ
mainTabView.setTitles(["Ó¦ÓùÜÀí", "¿ØÖÆÆ÷", "×Ô¶¯»¯½Å±¾", "ÉèÖÃ"]);
// 3. ÏÔʾTabView²¢¼ÓÔØ¸÷±êǩҳÄÚÈÝ
mainTabView.show(() => {
    printl("¸´ÔÓÓ¦ÓÿØÖÆÆ÷ÒÑÆô¶¯");
    
    // ¼ÓÔØ¸÷±êǩҳÄÚÈÝ
    mainTabView.addView(0, createAppManagerView());  // Ó¦ÓùÜÀí
    mainTabView.addView(1, createControllerView());   // ¿ØÖÆÆ÷
    mainTabView.addView(2, createAutomationView());   // ×Ô¶¯»¯½Å±¾
    mainTabView.addView(3, createSettingsView());     // ÉèÖÃ
    
    printl("ËùÓбêǩҳÄÚÈÝÒѼÓÔØÍê³É");
});
// ====================== ±êǩҳ1£ºÓ¦ÓùÜÀí ======================
function createAppManagerView() {
    var v = new Vertical();
    
    // ·µ»Ø°´Å¥
    var backButton = new Button();
    backButton.setText("¹Ø±Õ¿ØÖÆÆ÷");
    backButton.setColor(255, 0, 0);
    backButton.onClick(() => {
        printl("¿ØÖÆÆ÷ÒѹرÕ");
        mainTabView.dismiss();
    });
    v.addView(backButton);
    
    // ±êÌâ±êÇ©
    var titleLabel = new Label();
    titleLabel.setText("Ó¦ÓùÜÀíÖÐÐÄ");
    titleLabel.setTextColor(0, 0, 255);
    v.addView(titleLabel);
    
    // ´´½¨³£ÓÃÓ¦Óð´Å¥×é
    var appsVertical = new Vertical();
    
    // ¶¶ÒôÓ¦ÓÃ
    var douyinButton = createAppButton("¶¶Òô", 25, 10, 130);
    douyinButton.onClick(() => {
        printl("Æô¶¯¶¶ÒôÓ¦ÓÃ");
        // ʵ¼ÊÏîÄ¿ÖпÉʹÓÃapp.openApp()´ò¿ªÓ¦ÓÃ
        // app.openApp("com.ss.android.ugc.aweme");
        mainTabView.dismiss();
        hid.home();
        // Ä£Äâ´ò¿ªÓ¦ÓÃ
        setTimeout(() => {
            printl("¶¶ÒôÓ¦ÓÃÒÑÆô¶¯");
        }, 2000);
    });
    appsVertical.addView(douyinButton);
    
    // ΢ÐÅÓ¦ÓÃ
    var wechatButton = createAppButton("΢ÐÅ", 25, 10, 130);
    wechatButton.onClick(() => {
        printl("Æô¶¯Î¢ÐÅÓ¦ÓÃ");
        mainTabView.dismiss();
        hid.home();
        // Ä£Äâ´ò¿ªÓ¦ÓÃ
        setTimeout(() => {
            printl("΢ÐÅÓ¦ÓÃÒÑÆô¶¯");
        }, 2000);
    });
    appsVertical.addView(wechatButton);
    
    // ä¯ÀÀÆ÷Ó¦ÓÃ
    var browserButton = createAppButton("ä¯ÀÀÆ÷", 25, 10, 130);
    browserButton.onClick(() => {
        printl("Æô¶¯ä¯ÀÀÆ÷Ó¦ÓÃ");
        mainTabView.dismiss();
        hid.home();
        // Ä£Äâ´ò¿ªÓ¦ÓÃ
        setTimeout(() => {
            printl("ä¯ÀÀÆ÷Ó¦ÓÃÒÑÆô¶¯");
        }, 2000);
    });
    appsVertical.addView(browserButton);
    
    // Ìí¼ÓÓ¦ÓÃ×éµ½ÊÓͼ
    v.addView(appsVertical);
    
    // ×î½üʹÓÃÓ¦Óð´Å¥
    var recentsButton = new Button();
    recentsButton.setText("²é¿´×î½üʹÓÃÓ¦ÓÃ");
    recentsButton.setColor(0, 150, 0);
    recentsButton.onClick(() => {
        printl("´ò¿ª×î½üʹÓÃÓ¦ÓÃÁбí");
        mainTabView.dismiss();
        hid.recents();
    });
    v.addView(recentsButton);
    
    return v;
}
// ====================== ±êǩҳ2£º¿ØÖÆÆ÷ ======================
function createControllerView() {
    var v = new Vertical();
    
    // ·µ»Ø°´Å¥
    var backButton = new Button();
    backButton.setText("¹Ø±Õ¿ØÖÆÆ÷");
    backButton.setColor(255, 0, 0);
    backButton.onClick(() => {
        printl("¿ØÖÆÆ÷ÒѹرÕ");
        mainTabView.dismiss();
    });
    v.addView(backButton);
    
    // ±êÌâ±êÇ©
    var titleLabel = new Label();
    titleLabel.setText("É豸¿ØÖÆÆ÷");
    titleLabel.setTextColor(0, 0, 255);
    v.addView(titleLabel);
    
    // »ù±¾²Ù×÷°´Å¥×é
    var basicOps = new Vertical();
    
    // ·µ»ØÖ÷Ò³°´Å¥
    var homeButton = new Button();
    homeButton.setText("·µ»ØÖ÷Ò³");
    homeButton.setColor(255, 140, 0);
    homeButton.onClick(() => {
        printl("·µ»ØÉ豸Ö÷Ò³");
        mainTabView.dismiss();
        hid.home();
    });
    basicOps.addView(homeButton);
    
    // ·½Ïò»¬¶¯¿ØÖÆ
    var swipeControls = new Horizontal();
    
    // ×󻬰´Å¥
    var leftSwipeButton = new Button();
    leftSwipeButton.setText("×ó»¬");
    leftSwipeButton.setColor(0, 0, 255);
    leftSwipeButton.setWidth(80);
    leftSwipeButton.onClick(() => {
        printl("Ö´ÐÐ×󻬲Ù×÷");
        mainTabView.dismiss();
        hid.swipHPercent(0.8, 0.5, 0.2, 50, 500, 50);
    });
    swipeControls.addView(leftSwipeButton);
    
    // ÓÒ»¬°´Å¥
    var rightSwipeButton = new Button();
    rightSwipeButton.setText("ÓÒ»¬");
    rightSwipeButton.setColor(0, 0, 255);
    rightSwipeButton.setWidth(80);
    rightSwipeButton.onClick(() => {
        printl("Ö´ÐÐÓÒ»¬²Ù×÷");
        mainTabView.dismiss();
        hid.swipHPercent(0.2, 0.5, 0.8, 50, 500, 50);
    });
    swipeControls.addView(rightSwipeButton);
    
    // ÉÏ»¬°´Å¥
    var upSwipeButton = new Button();
    upSwipeButton.setText("ÉÏ»¬");
    upSwipeButton.setColor(0, 0, 255);
    upSwipeButton.setWidth(80);
    upSwipeButton.onClick(() => {
        printl("Ö´ÐÐÉÏ»¬²Ù×÷");
        mainTabView.dismiss();
        hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 50, 500, 50);
    });
    swipeControls.addView(upSwipeButton);
    
    // Ï»¬°´Å¥
    var downSwipeButton = new Button();
    downSwipeButton.setText("Ï»¬");
    downSwipeButton.setColor(0, 0, 255);
    downSwipeButton.setWidth(80);
    downSwipeButton.onClick(() => {
        printl("Ö´ÐÐÏ»¬²Ù×÷");
        mainTabView.dismiss();
        hid.swipVPercent(0.5, 0.2, 0.5, 0.8, 50, 500, 50);
    });
    swipeControls.addView(downSwipeButton);
    
    // Ìí¼Ó»¬¶¯¿ØÖƵ½»ù±¾²Ù×÷
    basicOps.addView(swipeControls);
    
    // Ìí¼Ó»ù±¾²Ù×÷µ½ÊÓͼ
    v.addView(basicOps);
    
    // ÆÁÄ»ÖÐÐĵã»÷°´Å¥
    var centerClickButton = new Button();
    centerClickButton.setText("µã»÷ÆÁÄ»ÖÐÐÄ");
    centerClickButton.setColor(128, 0, 128);
    centerClickButton.onClick(() => {
        printl("µã»÷ÆÁÄ»ÖÐÐÄλÖÃ");
        mainTabView.dismiss();
        hid.clickPercent(0.5, 0.5);
    });
    v.addView(centerClickButton);
    
    // ÆÁÄ»ÇøÓòµã»÷Ãæ°å
    var clickPanelLabel = new Label();
    clickPanelLabel.setText("µã»÷ÇøÓòÃæ°å");
    v.addView(clickPanelLabel);
    
    // ´´½¨3x3µã»÷Íø¸ñ
    var clickGrid = new Vertical();
    for (var y = 0; y < 3; y++) {
        var row = new Horizontal();
        for (var x = 0; x < 3; x++) {
            var areaButton = new Button();
            areaButton.setText(x + "," + y);
            areaButton.setColor(100, 100, 100);
            areaButton.setWidth(60);
            areaButton.setHeight(40);
            
            // ±Õ°ü±£´æx,yÖµ
            (function(gridX, gridY) {
                areaButton.onClick(() => {
                    var clickX = 0.25 + gridX * 0.25;
                    var clickY = 0.25 + gridY * 0.25;
                    printl(`µã»÷ÇøÓò (${gridX},${gridY}) - °Ù·Ö±È×ø±ê (${clickX.toFixed(2)},${clickY.toFixed(2)})`);
                    mainTabView.dismiss();
                    hid.clickPercent(clickX, clickY);
                });
            })(x, y);
            
            row.addView(areaButton);
        }
        clickGrid.addView(row);
    }
    v.addView(clickGrid);
    
    return v;
}
// ====================== ±êǩҳ3£º×Ô¶¯»¯½Å±¾ ======================
function createAutomationView() {
    var v = new Vertical();
    
    // ·µ»Ø°´Å¥
    var backButton = new Button();
    backButton.setText("¹Ø±Õ¿ØÖÆÆ÷");
    backButton.setColor(255, 0, 0);
    backButton.onClick(() => {
        printl("¿ØÖÆÆ÷ÒѹرÕ");
        mainTabView.dismiss();
    });
    v.addView(backButton);
    
    // ±êÌâ±êÇ©
    var titleLabel = new Label();
    titleLabel.setText("×Ô¶¯»¯½Å±¾");
    titleLabel.setTextColor(0, 0, 255);
    v.addView(titleLabel);
    
    // ½Å±¾Ñ¡Ôñ¸´Ñ¡¿ò×é
    var scriptOptions = new Vertical();
    
    var scrollScriptCheck = new CheckBox();
    scrollScriptCheck.setText("×Ô¶¯¹ö¶¯½Å±¾");
    scriptOptions.addView(scrollScriptCheck);
    
    var clickScriptCheck = new CheckBox();
    clickScriptCheck.setText("×Ô¶¯µã»÷½Å±¾");
    scriptOptions.addView(clickScriptCheck);
    
    var inputScriptCheck = new CheckBox();
    inputScriptCheck.setText("×Ô¶¯ÊäÈë½Å±¾");
    scriptOptions.addView(inputScriptCheck);
    
    v.addView(scriptOptions);
    
    // Ö´Ðнű¾°´Å¥
    var runScriptButton = new Button();
    runScriptButton.setText("Ö´ÐÐÑ¡Öнű¾");
    runScriptButton.setColor(0, 150, 0);
    runScriptButton.onClick(() => {
        printl("¿ªÊ¼Ö´ÐÐ×Ô¶¯»¯½Å±¾...");
        mainTabView.dismiss();
        
        // ¼ì²é¸÷½Å±¾¸´Ñ¡¿ò״̬²¢Ö´ÐжÔÓ¦½Å±¾
        if (scrollScriptCheck.isSelect()) {
            executeScrollScript();
        }
        
        if (clickScriptCheck.isSelect()) {
            executeClickScript();
        }
        
        if (inputScriptCheck.isSelect()) {
            executeInputScript();
        }
        
        if (!scrollScriptCheck.isSelect() && !clickScriptCheck.isSelect() && !inputScriptCheck.isSelect()) {
            printl("ÇëÖÁÉÙÑ¡ÔñÒ»¸ö½Å±¾");
        }
    });
    v.addView(runScriptButton);
    
    return v;
}
// ====================== ±êǩҳ4£ºÉèÖà ======================
function createSettingsView() {
    var v = new Vertical();
    
    // ·µ»Ø°´Å¥
    var backButton = new Button();
    backButton.setText("¹Ø±Õ¿ØÖÆÆ÷");
    backButton.setColor(255, 0, 0);
    backButton.onClick(() => {
        printl("¿ØÖÆÆ÷ÒѹرÕ");
        mainTabView.dismiss();
    });
    v.addView(backButton);
    
    // ±êÌâ±êÇ©
    var titleLabel = new Label();
    titleLabel.setText("¿ØÖÆÆ÷ÉèÖÃ");
    titleLabel.setTextColor(0, 0, 255);
    v.addView(titleLabel);
    
    // ÏÔʾÉèÖÃÏî
    var showLinesCheck = new CheckBox();
    showLinesCheck.setText("ÏÔʾ¸¨ÖúÏßÌõ");
    v.addView(showLinesCheck);
    
    var soundEffectsCheck = new CheckBox();
    soundEffectsCheck.setText("ÆôÓÃÉùÒô·´À¡");
    v.addView(soundEffectsCheck);
    
    var autoCloseCheck = new CheckBox();
    autoCloseCheck.setText("Ö´Ðкó×Ô¶¯¹Ø±Õ");
    // CheckBoxÀàûÓÐsetSelected·½·¨£¬ÒƳýÕâÐдúÂë
    v.addView(autoCloseCheck);
    
    // ±£´æÉèÖð´Å¥
    var saveSettingsButton = new Button();
    saveSettingsButton.setText("±£´æÉèÖÃ");
    saveSettingsButton.setColor(0, 150, 0);
    saveSettingsButton.onClick(() => {
        printl("ÉèÖÃÒѱ£´æ");
        
        // ÕâÀï¿ÉÒÔÌí¼Ó±£´æÉèÖõ½´æ´¢µÄÂß¼
        // ÀýÈçʹÓÃÅäÖÃÎļþ»ò±¾µØ´æ´¢
        var settings = {
            showLines: showLinesCheck.isSelect(),
            soundEffects: soundEffectsCheck.isSelect(),
            autoClose: autoCloseCheck.isSelect()
        };
        
        printl(JSON.stringify(settings));
    });
    v.addView(saveSettingsButton);
    
    // ¹ØÓÚÐÅÏ¢
    var aboutLabel = new Label();
    aboutLabel.setText("¸´ÔÓÓ¦ÓÿØÖÆÆ÷ v1.0\n»ùÓÚAIWROK¿ª·¢Æ½Ì¨");
    aboutLabel.setTextColor(100, 100, 100);
    v.addView(aboutLabel);
    
    return v;
}
// ====================== ¸¨Öúº¯Êý ======================
// ´´½¨Ó¦Óð´Å¥µÄ¸¨Öúº¯Êý
function createAppButton(title, r, g, b) {
    var btn = new Button();
    btn.setText(title);
    btn.setColor(r, g, b);
    btn.setTextColor(255, 255, 255);
    btn.setHeight(40);
    return btn;
}
// ×Ô¶¯»¯½Å±¾º¯Êý
function executeScrollScript() {
    printl("Ö´ÐÐ×Ô¶¯¹ö¶¯½Å±¾...");
    
    // Ö´ÐÐÒ»×éÉÏ»¬ºÍÏ»¬²Ù×÷
    for (var i = 0; i < 3; i++) {
        // ÉÏ»¬
        hid.swipVPercent(0.5, 0.8, 0.5, 0.2, 50, 1000, 100);
        sleep(1500); // µÈ´ý1.5Ãë
        
        // Ï»¬
        hid.swipVPercent(0.5, 0.2, 0.5, 0.8, 50, 1000, 100);
        sleep(1500); // µÈ´ý1.5Ãë
    }
    
    printl("×Ô¶¯¹ö¶¯½Å±¾Ö´ÐÐÍê³É");
}
function executeClickScript() {
    printl("Ö´ÐÐ×Ô¶¯µã»÷½Å±¾...");
    
    // ÔÚÆÁÄ»ÉÏËæ»úµã»÷5´Î
    for (var i = 0; i < 5; i++) {
        var randomX = Math.random();
        var randomY = Math.random();
        printl(`Ëæ»úµã»÷λÖÃ: (${randomX.toFixed(2)}, ${randomY.toFixed(2)})`);
        hid.clickPercent(randomX, randomY);
        sleep(1000); // µÈ´ý1Ãë
    }
    
    printl("×Ô¶¯µã»÷½Å±¾Ö´ÐÐÍê³É");
}
function executeInputScript() {
    printl("Ö´ÐÐ×Ô¶¯ÊäÈë½Å±¾...");
    
    // ÊäÈëÒ»¶ÎÎı¾
    hid.inputSimple("Hello, this is an automated input test!\n");
    
    // ÊäÈëÊý×Ö
    hid.inputSimple("1234567890");
    
    printl("×Ô¶¯ÊäÈë½Å±¾Ö´ÐÐÍê³É");
}
// Ä£Äâsleepº¯Êý
function sleep(ms) {
    var start = new Date().getTime();
    while (new Date().getTime() - start < ms) {
        // ¿ÕÑ»·µÈ´ý
    }
}
// ×¢ÒâÊÂÏ
// 1. ±¾Ê¾Àý½áºÏÁËUI½çÃæºÍHIDÉ豸²Ù×÷¹¦ÄÜ
// 2. ÔÚʵ¼ÊʹÓÃÖУ¬Ä³Ð©¹¦ÄÜ¿ÉÄÜÐèÒª¸ù¾Ý¾ßÌåµÄÉ豸»·¾³½øÐе÷Õû
// 3. ÈçÐèÀ©Õ¹¸ü¶à¹¦ÄÜ£¬¿ÉÒÔÔÚÏÖÓпò¼Ü»ù´¡ÉÏÌí¼ÓеıêǩҳºÍ¹¦ÄÜÄ£¿é
 | AIWROKÆ»¹ûIOSÏßÌõÀà[Line]¸´ÔÓʾÀý 
 | 
 
 | 
 |