在内部使用带有 UIWebView 的 url 方案来更改 UILabel
Posted
技术标签:
【中文标题】在内部使用带有 UIWebView 的 url 方案来更改 UILabel【英文标题】:Using a url scheme internally with a UIWebView to change a UILabel 【发布时间】:2011-01-20 19:26:31 【问题描述】:我有一个 UIWebView,它在 UINavigationController 中显示了几个屏幕:
First View > Second View > View with UIWebView + UILabel
现在,我在该 Web 视图中显示某个页面,其中包含返回我的应用程序的链接......
myapp://foofoo
我知道您可以使用(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
和一些 info.plist 戳设置自定义 URL,但是如何通过简单地单击 myapp://foofoo 链接来更改与 UIWebView 相同的屏幕的 UILabel?
【问题讨论】:
【参考方案1】:最好的方法是通过自定义链接,然后使用 UIWebView 委托方法 -webView:shouldStartLoadWithRequest:navigationType: 来捕获请求。当您看到包含您的链接的请求通过时,您就知道您的操作已被触发。
UIWebView Expose Objective C to javascript
【讨论】:
【参考方案2】:-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSLog(@"scheme = %@",[[request URL] scheme]);
if([[[request URL] scheme]isEqualToString:@"myscheme"])
[messageLabel setText:@"HELLO!"];
return NO;
else return YES;
确保您的视图控制器符合 UIWebViewDelegate 协议以使其正常工作。
【讨论】:
以上是关于在内部使用带有 UIWebView 的 url 方案来更改 UILabel的主要内容,如果未能解决你的问题,请参考以下文章
从 UIWebView 委托方法中排除外部 javascript 内容