Mac 操作系统 10.8.3。当单击浏览器中的链接时,这个简单的应用程序从自定义协议运行,例如 run 。
使用 xCode 编译 .app,未签名。
适用于大多数机器,但不适用于某些机器。一个不工作的是 Mac OS 10.8.2 与关守关闭。它给出了错误“由于奇怪的原因(13)失败”。我想这与许可或安全有关。我尝试将 Contents/MacOS/Binary chmoding 到 777,但还是一样。
我是否必须签署 Apple 开发证书才能使其工作,或者在代码或 plist 中执行其他操作以使其在所有机器上工作?
列表
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>protocoltest</string>
</array>
<key>CFBundleURLName</key>
<string>com.TestWebLauncher</string>
</dict>
</array>
AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
if ([invokeUrl length] == 0)
{
invokeUrl = @"no url";
}
[txt setStringValue:invokeUrl];
}
- (id)init
{
[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
return [super init];
}
- (BOOL)handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
NSLog(@"%@", url);
invokeUrl = url;
return YES;
}
@end