今天阅读 Adium 代码,发现了一个有趣的 NSURL 用法:
NSURL *baseURL = [NSURL URLWithString:[NSString stringWithFormat:@"adium://%@/adium", [messageStyle.bundle bundleIdentifier]]];
[[webView mainFrame] loadHTMLString:[messageStyle baseTemplateForChat:chat] baseURL:baseURL];
我试图记录 url 并得到这个adium://im.adium.Smooth Operator.style/adium,然后我创建了一个空白项目来查看如何创建这样的 NSURL 但失败了。当我向项目中的 webview 框架发送 loadHTMLString 消息时,如果 baseURL 为 nil,一切都很好,如果不是,我在视图中得到一个空白页面。
这是我的代码,项目名称是 webkit
NSURL *baseURL = [NSURL URLWithString:@"webkit://resource"];
//if baseURL is nil or [[NSBundle mainBundle] bundleURL], everything is fine
[[webView mainFrame] loadHTMLString:@"<html><head></head><body><div>helloworld</div></body></html>"
baseURL: baseURL];
[frameView setDocumentView:webView];
[[frameView documentView] setFrame:[frameView visibleRect]];
问题是如何制作自定义协议而不是 http://?