English 中文(简体)
如何告诉 Safari 何时完成加载网页
原标题:How to tell when Safari is done loading a webpage

我试图弄清楚, 能否追踪 Safari 何时填好页面请求 。 我打电话给Safari 使用此代码打开 :

// Open Safari
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.example.com/" description]]];

但是,由于我的应用程序转到了背景,它可能是 暂停(无法执行代码) 。这在Xcode 4范围内可能做吗?

<强 > EDIT

我之所以这样做,是因为UIWebView和Safari的运行水平不同 ,我想在一些网站上做一些与业绩有关的测试。

最佳回答

一般来说,这是不可能的。

您可以做的一件事是, 从要装入的页面上, 重定向到您的应用程序 s URL 方案, 这将启动您的应用程序。 欲了解更多有关此事项的信息, 请查看 < code> - [UIApplicationDelgate application: OpenURL: sourceApplication: annotation:] 方法 。

我不认为您的应用程序可以通过这种 URL 方案拒绝激活, 因此这意味着您的应用程序将会生效 。 也许上述方法( 是一个布尔) 的返回值可以被使用, 您必须测试它 。

此方法还假设您可以访问您重新打开的页面, 这样您就可以添加重定向 。

问题回答

所以,如果你们想看看我是如何为监狱里的 IOS(而不是相当无聊的“不可能 ” ) ( iOS ) ( 而不是“不可能 ” ) 这样做的: 我基本上上钩了游览, 以获得网页完成厌恶后所谓的特定方法。 使用 MobileSubstrate ( com. apple. mobalsafari ), 在输入您的动态图书馆时使用 :

#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 */
}

不, 这是不可能的。 但是, 如果您在您自己的应用程序中打开 UIWebView 中的链接, 您可以做到这一点 。





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签