0

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
4

0 回答 0