0

iOsOpenDev (iOs 7.1) を使用した AppSlider メソッドのように、SpringBoard メソッドをフックする方法を教えてもらえますか。また、どのフレームワークを使用する必要があるかわかりません。

私はこれを試しましたが、コンソールには何も表示されませんでした:

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

注:AppSwitcherが表示されたときに何かをする必要がある場合、正しいクラスはSBAppSliderControllerです;)

于 2014-06-27T14:06:26.040 に答える