OS X - WebView问题

时间:2015-09-26 17:34:54

标签: objective-c macos cocoa webview

我在OS X应用程序中使用webview,并得到了客户的奇怪要求:

1)需要在应用程序中显示webview的地址栏,我试过,如果webview有任何支持但无法找到。我知道我可以通过拥有一个文本字段和显示网址来做到这一点,但我不确定这是否正确,所以还有其他更好的方法,请建议。

2)还需要检查加载的URL是否具有SSL支持并显示一些图标,如挂锁(打开/关闭)。那么我是否可以使用Webview的任何支持或功能,或者我只需检查http或https的URL前缀?请帮忙。

提前致谢。 MP

1 个答案:

答案 0 :(得分:0)

这正是你应该做的。创建文本字段,并将这段代码插入到您的应用程序中:

- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame {
    NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
    [myTextField setStringValue:currentURL];
}

对于问题的第二部分,请使用currentURL字符串,并使用NSNotFound方法检查字符串中是否存在https://。使用[myString rangeOfString:@"string_to_search_for"].location != NSNotFound,如果找到rangeOfString:,它将返回true。 (!= 表示不等于。)(所以!= NSNotFound 表示您的rangeOfString不等于未找到...如果这有意义的话)

 - (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame {

    NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
    if ([currentURL rangeOfString:@"https://"].location != NSNotFound) {
        // *https://* exists! Show your closed padlock image!
    } else {
        // *https://* does not exist. Show your open padlock image.
    }
}

希望这有用!