Mac 命令行安装Chrome插件

1. 在终端调用命令行实现Chrome插件安装

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-easy-off-store-extension-install extensionPath

其中extensionPath是指的插件文件路径(Chrome插件文件的后缀名是crx),例如~/Desktop/chromeExtension.crx

注意:安装插件之前要确保Chrome浏览器不在运行

2. 通过代码实现Chrome插件安装

- (void)startInstallChromeExtension {
    NSURL *url = [[NSWorkspace sharedWorkspace] URLForApplicationWithBundleIdentifier:@"com.google.Chrome"];
    if (url) {
        Nsstring *chromeExtensionPath = [[NSBundle mainBundle] pathForResource:EXTENSIONSOURCENAME ofType:@"crx" inDirectory:EXTENSIONDIRNAME];
        NSDictionary *configuration = [NSDictionary dictionaryWithObjectsAndKeys:
                                       [NSArray arrayWithObjects:@"--enable-easy-off-store-extension-install",chromeExtensionPath,nil],NSWorkspaceLaunchConfigurationArguments,nil];
        
        [[NSWorkspace sharedWorkspace] launchApplicationAtURL:url
                                                      options:NSWorkspacelaunchdefault
                                                configuration:configuration error:nil];
        
    }
}

- (IBAction)installChromeExtension:(id)sender {
    NSArray *runningChromes = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.google.Chrome"];
    if ([runningChromes count] > 0) {
        NSAlert * alert = [NSAlert alertWithMessageText:NSLocalizedString(@"安装Chrome插件,需要关闭正在运行的Chrome浏览器,是否允许?",@"")
                                          defaultButton:NSLocalizedString(@"OK",@"")
                                        alternateButton:NSLocalizedString(@"Cancel",@"")
                                            otherButton:nil
                              informativeTextWithFormat:@""];
        
        NSInteger result = [alert runModal];
        
        if (result == NSAlertDefaultReturn ) {
            for (int i = 0; i < [runningChromes count]; i++) {
                [(NSRunningApplication *)[runningChromes objectAtIndex:i] forceTerminate];
            }
            [self performSelector:@selector(startInstallChromeExtension) withObject:nil afterDelay:0.5];
        }
    }
    else {
        [self performSelector:@selector(startInstallChromeExtension) withObject:nil afterDelay:0.5];
    }
}

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...