我正在使用https://github.com/stelford/Titanium-Calendar
我的问题是它不会要求用户获得他们日历的许可。我知道代码有效,因为我使用了一个崩溃的不同模块,但它强制我用于测试的手机给它许可。所以现在我的测试手机运行得很好,但没有其他人这样做,因为它首先不会实际请求许可。
我不知道如何让这个日历模块强制向用户发出访问其日历的请求。任何帮助都会很棒......
答案 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),这非常棒:)