【问题标题】:Safari Preferences plist not changing on mac 10.9 from User DefaultsSafari 首选项 plist 在 mac 10.9 上未从用户默认值更改
【发布时间】:2014-10-12 10:11:31
【问题描述】:

我在更改“阻止 cookie 和其他网站数据:”表单隐私时遇到了 Mac 中的首选项缓存问题。我尝试使用用户默认值来更改首选项。当“从不”选项被选为“来自第三方和广告商”的变化时。但是,如果“始终”选择了更改,则它不起作用。 OSX 版本是 10.3

默认写入 com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StorageBlockingPolicy 1

默认写入 com.apple.Safari WebKitStorageBlockingPolicy 1

遵循此链接http://hotdigitalnews.com/how-to-tackle-defaults-not-sticking-in-mavericks/中给出的相同步骤

【问题讨论】:

  • 经过多天的研究,我终于可以更改 cookie 偏好了。
  • "mac 10.9...OSX version is 10.3" 没有任何意义,不可能两者兼有。我想你的意思是你的 MacOS 版本是 10.9?如果是,请修正问题和标题。

标签: macos caching safari osx-mavericks preference


【解决方案1】:

-(IBAction)allowCookies:(id)sender {

[self quitApplicationIfRunning:@"com.apple.Safari"];
[self setCookies];

NSString *text =nil;
NSString *commandString = [NSString stringWithFormat:@"defaults write com.apple.WebFoundation NSHTTPAcceptCookies 'always' "];
text = [self runAsCommand:commandString];
NSLog(@"text %@",text);
[self manageCookies:0];

}

-(void)setCookies{

NSLog(@"Cookies has been changed %lu",[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]);
[[NSHTTPCookieStorage sharedHTTPCookieStorage]  setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

[[NSNotificationCenter defaultCenter] postNotificationName:NSHTTPCookieManagerAcceptPolicyChangedNotification object:self userInfo:nil];

}

-(void)manageCookies:(short)option{

NSString *commandString = [NSString stringWithFormat:@"defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StorageBlockingPolicy -int %d",option];

NSString *text = [self runAsCommand:commandString];
NSLog(@"text %@",text);

commandString = [NSString stringWithFormat:@"defaults write com.apple.Safari WebKitStorageBlockingPolicy -int %d",option];

text = [self runAsCommand:commandString];
NSLog(@"text %@",text);

}

  • (NSString*)runAsCommand:(NSString *)string {

    NSPipe* 管道 = [NSPipe 管道];

    NSTask* task = [[NSTask alloc] init]; [任务集LaunchPath:@"/bin/sh"]; [task setArguments:@[@"-c", [NSString stringWithFormat:@"%@", string]]]; [任务集标准输出:管道];

    NSFileHandle* file = [管道文件HandleForReading]; [任务启动];

    return [[NSString alloc] initWithData:[file readDataToEndOfFile] encoding:NSUTF8StringEncoding]; }

【讨论】:

  • 尝试了所有三个默认写入:默认写入 com.apple.Safari WebKitStorageBlockingPolicy -int 1 默认写入 com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StorageBlockingPolicy -int 1 默认写入 com.apple。 WebFoundation 'NSHTTPAcceptCookies' -string '当前页面' 仍然无法正常工作。即使重新启动浏览器。有什么帮助吗?
猜你喜欢
  • 2012-11-24
  • 2013-11-17
  • 2011-07-02
  • 2011-07-23
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多