在内部使用带有 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的主要内容,如果未能解决你的问题,请参考以下文章

使用“=”在内部分配带有char数组的结构?

带有肤色的表情符号如何在内部表示? [关闭]

在 UIWebview 中加载带有帖子的 URL 的问题

从 UIWebView 委托方法中排除外部 javascript 内容

声明一个带有格式说明符的 NSString 并将其用作在 UIWebview 中打开的 URL

C#传递带有参数的Func,其中1个参数在传递时设置,其他参数在内部设置