Titanium Force日历访问请求

时间:2012-12-05 07:14:34

标签: iphone ios titanium

我正在使用https://github.com/stelford/Titanium-Calendar

我的问题是它不会要求用户获得他们日历的许可。我知道代码有效,因为我使用了一个崩溃的不同模块,但它强制我用于测试的手机给它许可。所以现在我的测试手机运行得很好,但没有其他人这样做,因为它首先不会实际请求许可。

我不知道如何让这个日历模块强制向用户发出访问其日历的请求。任何帮助都会很棒......

1 个答案:

答案 0 :(得分:0)

首先,您需要检查设备,看它是否甚至要求访问日历。为此,请转到Settings - > Privacy - > Calendars。如果您的应用程序已请求日历访问权限,它将显示在那里。

Settings screen http://www.iphone-to-ipad.com/blog/wp-content/uploads/2012/10/ios-6-privacy-settings.jpg Privacy settings http://cdn.iphonehacks.com/wp-content/uploads/2012/10/ios_6_privacy_settings-2.jpg

此日历模块存在一些问题。我把它们固定在obj-c中。我必须为日历模块做很多事情才能使它在iPad上顺利运行。如果您在Titanium论坛上查看此日历模块和我的名字(Blake Rogers),您应该能够找到我对该模块进行的一系列更改,以解决问题。

要执行此修复,您实际上需要下载日历的Xcode项目。之后,您需要在Module/AgCalendarModule.m文件中添加以下代码。将startup方法替换为该文件中的以下内容。

一旦你更换了代码,你需要使用build.py重新编译它(如果我没记错的话......已经有一段时间了)一旦你使用build.py编译它就可以添加您正在处理的当前项目中的模块版本。

-(void)startup
{
    // this method is called when the module is first loaded
    // you *must* call the superclass
    [super startup];
    EKEventStore *es = [[EKEventStore alloc] init];
    [es requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        /* This code will run when uses has made his/her choice */
    }];
    NSLog(@"[INFO] %@ loaded",self);
}

老实说,Titanium对我来说是一次可怕的经历。一旦我的应用程序比最初的概念证明更大并涉及与远程Web服务器同步...我开始从内存泄漏中得到奇怪的错误,你无法重现,因为内存泄漏会在不同时间发生攻击。

我目前正在切换(是从头开始重建整个应用程序)到Xamarin(Monotouch),这非常棒:)