iOS 7:从电子邮件附件导入CSV数据

时间:2014-08-16 09:41:18

标签: ios csv cordova email-attachments

我有一个日志应用程序,当前输出CSV作为电子邮件附件。但是,允许用户将所述CSV导入其他设备以共享其日志变得至关重要。

让XCode将CSV注册为我的应用程序读取的格式之一,这有点微不足道。我甚至可以从Mail的“open with ...”启动应用程序。但是,我在Objective C中工作最困难(与我习惯的非常不同...... PHP,JS,AS)。

我需要帮助的是找到一个工作示例,说明如何将从Mail传递的CSV传递到我的应用程序。

在Android中,你可以声明“意图”,甚至还有Cordova插件,比如WebIntent。但对iOS来说没什么。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

//In the app delegate
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  if (url != nil && [url isFileURL]) 
  {
     [self.myViewController handleCSV:url];
  }
  return YES;
}


//In myViewController (or what you call it)

-(void)handleCSV:(NSURL *)url
{
    NSError *readError;
    NSString *csvString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:& readError];

    if(csvString && readError==nil)
    {
       NSArray *csvItems;
       NSRange matchComma= [csvString rangeOfString: @","];
       NSRange matchSemi= [csvString rangeOfString: @";"];

       if(matchComma.location != NSNotFound) csvItems = [csvString componentsSeparatedByString: @","];
       else if(matchSemi.location != NSNotFound) csvItems = [csvString componentsSeparatedByString: @";"];
    }else
    {
      NSLog(@"error %@", readError);
    }
}