【问题标题】:Titanium Force Calendar Access RequestTitanium Force 日历访问请求
【发布时间】:2012-12-05 07:14:33
【问题描述】:

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

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

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

【问题讨论】:

  • 嗨,你解决了这个问题吗,我在我的应用程序中使用 Stelford 模块,创建了事件并且保存没有错误,但我认为事件没有保存在日历中,因为没有访问权限日历。我是对的。?本地日历中未显示的事件可能是什么问题
  • 我不确定您是否正确,但这听起来像是问题所在。一个简单的检查方法是在安装应用程序后进入设备上的设置,并且您已经通过应用程序访问了日历(即使它是本地日历)。如果在设置中应用程序未列为具有日历权限,则它无法访问日历。我会尽快发布我的解决方案
  • 我已经在下面发布了答案。如果您觉得有用,请点赞问题和答案。

标签: iphone ios titanium


【解决方案1】:

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


(来源:iphone-to-ipad.com


(来源:iphonehacks.com

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

要执行此修复,您实际上需要下载日历的 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),这非常棒:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多