Objective c Cocoa应用程序处理标准HTTP url方案
我需要用我的应用程序处理以特定域开头的HTTP URL,因为它指向REST源。但是,web服务不在我的控制之下,因此我无法轻松引入自定义url方案来打开我的应用程序的链接 有没有办法在Cocoa应用程序中拦截和处理此类URL 示例:Objective c Cocoa应用程序处理标准HTTP url方案,objective-c,cocoa,appkit,Objective C,Cocoa,Appkit,我需要用我的应用程序处理以特定域开头的HTTP URL,因为它指向REST源。但是,web服务不在我的控制之下,因此我无法轻松引入自定义url方案来打开我的应用程序的链接 有没有办法在Cocoa应用程序中拦截和处理此类URL 示例:http://static.domain.name/some/random/path 我的应用程序应该处理指向http://static.domain.name 我恐怕答案是否定的,但是,无论如何,一切都是可能的:) 更新 这是我用来让它工作的Safari扩展代码(
http://static.domain.name/some/random/path
我的应用程序应该处理指向http://static.domain.name
我恐怕答案是否定的,但是,无论如何,一切都是可能的:)
更新
这是我用来让它工作的Safari扩展代码(中的内容替换为您的东西)
var allLinks=document.links;
对于(var i=0;i只需在您自己的方案下对整个url进行编码,例如myscheme://http%3A//static.domain.name/some/random/path
当您的应用程序处理URL时,只需切掉第一部分并将其取消扫描:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSString * urlString = [url description];
// Remove your scheme
urlString = [urlString stringByReplacingOccurrencesOfString:@"myscheme://" withString: @""];
// Unescape
urlString = [urlString stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
// Do something with urlString
return YES;
}
但是没有。你不能被分配处理http://
,但是如果URL位于网页上,我应该如何完成呢?它也需要在safari之外工作。我想我必须编写safari扩展:)对不起,我在这里输入了iPhone特定的代码。我理解错了。你能给出一个用例吗?用户是否访问了某个网站,当他们单击指向您域的链接时,会打开您的cocoa应用程序,并显示url?不,不是我的域。具体来说,我需要打开Last.fm URL。例如,当你去的时候,有一个链接到http://www.last.fm/listen …
。我需要将这些URL添加到我的应用程序中,听起来你需要一个Safari插件:(
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSString * urlString = [url description];
// Remove your scheme
urlString = [urlString stringByReplacingOccurrencesOfString:@"myscheme://" withString: @""];
// Unescape
urlString = [urlString stringByReplacingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
// Do something with urlString
return YES;
}