그래서 내가 jailbroken iOS (매우 지루한 "불가능"대신)에 대해 어떻게했는지 보려면 다음과 같이하십시오. 기본적으로 사파리를 연결하여 페이지가있을 때 호출되는 특정 메소드에 액세스합니다. loaing을 끝냈다. MobileSubstrate 사용 (동적 라이브러리를 삽입 할 때 com.apple.mobilesafari에 대한 필터) :
#import <substrate.h>
#import <UIKit/UIKit.h>
/* Some globals */
static IMP _orig_1, _orig_2;
static id tabController;
id _mod_1(id __self, SEL __cmd, CGRect frame, id tabDocument);
void _mod_2(id __self, SEL __cmd, id doc, BOOL error);
/* The library constructor */
__attribute__((constructor))
static void init()
{
Class tabClass;
tabClass = objc_getClass("TabController");
MSHookMessageEx(tabClass, @selector(initWithFrame:tabDocument:),
(IMP)_mod_1, &_orig_1);
MSHookMessageEx(tabClass, @selector(tabDocument:didFinishLoadingWithError:),
(IMP)_mod_2, &_orig_2);
}
/* This hook merely captures the TabController of Safari. */
id _mod_1(id __self, SEL __cmd, CGRect frame, id tabDocument)
{
__self = _orig_1(__self, __cmd, frame, tabDocument);
tabController = __self;
return __self;
}
/* This is called when the page loading is done */
void _mod_2(id __self, SEL __cmd, id doc, BOOL error)
{
/* Make sure you always call the original method */
_orig_2(__self, __cmd, doc, error);
/* then do what you want */
}
AppStore 또는 jailbroken 장치를 타겟팅합니까? jailbroken 장치에 대한 솔루션이 있습니다. –
AppStore. 그러나 만약 당신이 jailbroken 하나를 게시 할 수있는 훌륭한 것입니다! – justderb