Identify email id configured in email app in ios device - ios

i have requirement where in my app i can send some data as attachment via email to people in my contact. when the user opens attachment, it opens with the help of my app and saves the data in the receiver's app's database. also actions assigned to that person gets saved in his device's calendar as an event. the problem is that i will be sending the data to multiple recipients and action tasks assigned to everyone, so i need to know the receiving person's identity to save only task assigned to him in his device's calendar as event. now the requirement given to me is when creating action task for each person i also need to save his email-id[as person is selected from contacts stored in that device], so if i can find the receiver's email id i can identify tasks assigned to only him and save to his calendar.

As This is not possible to get Configured Email details in iOS Device (in Non Jailbroken device, no idea with Jail broken device) it breaks user privacy.

Related

Can CloudKit user phone numbers be retrieved using `CKDiscoverAllUserIdentitiesOperation`?

Background
I am retrieving all the users for my app using the recommended CloudKit operation, CKDiscoverAllUserIdentitiesOperation.
This operation is designed to returns each user's info in a CKUserIdentity object. The lookupInfo attribute of the user identity has fields that can contain the user's email address and the user's phone number.
e.g.
user.lookupInfo.phoneNumber
user.lookupInfo.emailAddress
Question
When I run this operation, I only ever get each user's email address. The phoneNumber field is never populated.
How do I retrieve these user identities and have them include the user's phone number? (Is this possible?)
Additional Info
I am able to retrieve individual users with their phone numbers using the discoverUserIdentity(withPhoneNumber... CloudKit function, so I know that these accounts are linked to phone numbers.
All you get is the email. That's it. It's not possible to get any more info than that using CKDiscoverAllUserIdentitiesOperation. And that is only for users that have agreed to be looked up via email while using your app.
The only time the phone number is filled in is if you specifically lookup the user by phone number. Of course that's kind of pointless since you already know the phone number.

Auto logout feature while using Parse in iOS

I'm creating login and registration page in iOS using Parse.com. Now if a user is logged in in one device than same user is logging in in different device than the first logged in device should get logged out.
How to achieve this thing in iOS objective C?
You could create a "logged in"-token for each device, based on device id. When you log in as a user, the current device id is stored in this field.
Then, every time your app is opened, it performs a check against this device id. If the stored device id does not match the current device id, you log out the user.

Retrieve the user's App Store nickname programmatically

Is anyone aware of a method to get the user's App Store nickname? I know about the CloudKit method fetchUserRecordIDWithCompletionHandler, but this returns the user first and last name, not the nickname that the user uses to e.g. write reviews on iTunes.
Thanks
Using fetchUserRecordIDWithCompletionHandler and discoverUserInfoWithUserRecordID is the only way to get information about the current iCloud user.
Besides that you do have to be aware that starting from iOS 9 you wont't get the first and last name anymore only a displayname. For more info see https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKDiscoveredUserInfo_class/index.html#//apple_ref/swift/cl/c:objc(cs)CKDiscoveredUserInfo

Notifications on remote change

I'm developing an application which holds a list of objects.
The user should be able to favorite some of these objects, which then gets saved for easy access. Simple enough, right.
However, in addition to that, I want it so that the application notifies the user (using a notification, like when you get a new SMS), whenever one of the favorited objects have had something changed (in my application the objects represent a pub, and a change to the pub is when it has a new event scheduled). The change is done on a remote server, using a webpage.
When my app is active I can just poll the server every few minutes and compare the properties of the object, and if I see a change notify the user.
But how will I do to make this work when my app is NOT in the foreground? I want the user to get a notification even if he/she is not currently running my app.
The app does not have any login-functionality, so I can't send out specific push notifications to specific users. So the only thing the server might have access to is perhaps the device ID. I.e. there is no real way for the server to know which favorites a device ID holds.
Is there some smart way to do this? On Android I can just use polling but as iOS doesn't allow code to run in the background in the same way I don't really know how to do.
All help greatly appreciated. Even if it's just a "I don't think that's possible".
Just create a table that associates device ID with favorites. When a favorite changes, send that device ID a push notification
The user is the device ID

Sending vCard update

I'm currently playing with the XMPPFramework for iOS and I had the idea to let users make their own profile, based on vCards. I've made a screen where they can enter some information, such as date of birth, first/last name etc. When they are done they press the 'save' button.
What I would like to do, is to letting know everyone that's subscribed to this user that his vCard changed but I'm not sure how to do this. I've already tried to send a vcard-temp:x:update stanza but the message didn't arrive on my other device I'm testing with.
Does anyone know how I could do this and which method I could use?
You cannot know about vCard changes,
You can only know about photo updates via XEP: 0153
This xep uses the presence to send the photo there.

Resources