3

对于 iOS 应用程序(用 C#/MonoTouch 编写),我使用 UIWebView 动态呈现一些内容。虽然这工作正常,但我遇到了一个烦人的问题:我第一次使用 UIWebView(自应用程序启动以来),显示任何内容都需要几秒钟。这可以克服吗?

我不“回收”实例化的 UIWebView,在每个屏幕上我使用一个 UIWebView,我创建一个新的 viewcontroller/UIWebView 组合。

我试图在我的 appdelegate 中实例化一个随机 UIWebView,但这不会产生任何效果(可能是因为它不可见)。

谢谢!

4

2 回答 2

4

首先,您最好启动Apple 的 Instruments 以准确找出时间流逝的地方。

怀疑这至少部分来自于在您的应用程序进程中加载​​和初始化 Web 浏览器库。这将是一次性支付的价格,这听起来与您的描述相似。

如果情况确实如此,那么您可能能够在启动应用程序时预加载库,例如在单独的线程中(但注意不要调用任何线程敏感代码)。

这应该使第一次使用时间类似于第二次(以及更多)时间。由于该初始化将在单独的线程上完成,因此它不会对您的应用程序初始化产生太大影响(至少在多核设备上)。

于 2012-12-31T17:49:52.560 回答
1

你想玩弄这些方法:

-(void)webViewDidStartLoad:(UIWebView *)webView


-(void)webViewDidFinishLoad:(UIWebView *)webView

在这些方法中添加条件,然后您可以让 ViewController 在网页加载时执行操作。

于 2012-12-31T00:08:57.983 回答