0

有人可以告诉我如何挂钩 SpringBoard 方法,比如一些带有 iOsOpenDev (iOs 7.1) 的 AppSlider 方法。我也不知道我必须采取什么框架。

我已经尝试过了,但控制台上没有出现任何内容:

import UIKit/UIKit.h
import SpringBoard/SpringBoard.h
import "CaptainHook.h"

CHDeclareClass(SBAppSliderScrollingViewController);

CHOptimizedMethod(0, self, void, SBAppSliderScrollingViewController, loadView)
{
    CHSuper(0, SBAppSliderScrollingViewController, loadView);
    NSLog(@"Ciccia!");
}

CHConstructor
{
   @autoreleasepool
   {
      CHLoadLateClass(SBAppSliderScrollingViewController);
      CHHook(0, SBAppSliderScrollingViewController, loadView);
   }
}
4

1 回答 1

0

为什么你需要

CHLoadLateClass(SBAppSliderScrollingViewController); //for class available later

你可以写

CHLoadClass(SBAppSliderScrollingViewController);//for class available now ;)

并且您可以使用徽标轻松完成。这是一个示例...

#import <UIKit/UIKit.h>

%hook SBAppSliderController

- (void)loadView {
     %orig;
     NSLog (@"****AppSwitcher Appeared");

     UIAlertView *testAlert = [[UIAlertView alloc] initWithTitle:@"Test" 
     message:@"app switcher appeared." 
     delegate:self 
     cancelButtonTitle:@"OK" 
     otherButtonTitles:nil];

     [testAlert show];
     [testAlert release]; //for non-arc 

}

%end

注意:正确的类是 SBAppSliderController 如果您需要在 AppSwitcher 出现时做某事;)

于 2014-06-27T14:06:26.040 回答