How to modify iOS Mail app? - ios

I'd like to add functionality to the existing iOS Mail app, specifically - the ability to hide emails for later review (e.g. 'snooze' functionality). I know this functionality existing is multiple 3rd party mail apps like Mailboxapp etc but all of these 3rd party mail apps for iOS only work with Gmail and I want to use this 'snooze email' functionality for non-Gmail accounts.
As such, I can't find the Apple API to modify the mail app to add this 'snooze email' functionality.
How would I go about adding functionality to the existing iOS mail app?

This is an interesting question, but at first glance it seems simple. Remember the rule of thumb? You can't modify apps that aren't your own.
As such, I can't find the Apple API to modify the mail app to add this 'snooze email' functionality.
You can't find the Apple API because there is no such API.
You do have three other options:
File a radar. Perhaps Apple will add this in an OS update if you ask nicely. You do have to ask, though.
Jailbreak and roll it yourself. You'll have to figure out what API exist all by yourself, without any Apple documentation to hold your hand. Your best bet is to try running otool or class-dump on the iOS frameworks to see if there are private methods you can use to set the status of an email. Once you have that working, you can try to figure out how and where you want to build out the user interface or gesture to "snooze" an email. It goes without saying that you can't distribute OS plugins on the App Store. If you want to distribute this, write your own email client and include a snooze feature.
File an enhancement request with other companies, such as Sparrow, Mailbox, and Google, and ask them to add this to their own apps. As you note in your question, Mailbox includes this already. You can try Sparrow and see if it supports snoozing (I don't know if it does non-gmail accounts.) You can also request that they support other kinds of email accounts.
If you're just looking to remind yourself to reply to emails, you can also schedule reminders in the reminders app or via Siri.
Actually, I just flag emails. There's a flagged inbox in iOS 7.

Jailbreak and install tweaks.
Apple's extraordinarily tight-fisted with their APIs. Modifying the actual application is not easily doable. If you need to change functionality, consider other mail applications available on the App Store.

Related

How to create a deep link to the Apple Wallet app from my website?

I would like to have a link on my mobile website that once clicked from an iOS device, it will open up the Apple Wallet app.
I know there are some questions about this subject when it comes to an app that I built, but since this is not the case here, I'm not sure what is the right approach. I'm also aware of Brnach.io, but again, I think this solution is for an app I own, and I'm not sure how I can implement it for apps created by Apple (or other 3rd party developers) and specifically Apple Wallet (for example: how do I get the app ID?).
I know Universal Links might also be an option but I've read that I can't use an automated redirect with them (which I will need to do too)
Use this in your URL- shoebox://
To simply open the Wallet app you can use the wallet:// deeplnk, I'm also trying to figure out how to open specific passes.

Is there a way to delete call logs and SMS programmatically in iOS?

I want the ability for a user to specify a time-frame and delete all call logs and sms created during that time-frame. Does Apple allow this functionality?
I know this is like accessing the sandbox mode of a private app but just want to confirm if there is a way.
Sadly, There is no way to access the SMS or Call Logs.
Apple encourages third party apps to be developed to carry unique functions. Not the ones that are already available from First party which is apple itself.
Call log and sms are synced to iCloud. So i guess even if you figure out a way to access them using some private api, you might not be able to update them. so apparently they will be resynched.

IOS Deeplinking- Pass msg from email to your app

Existing user of the app will send email to other user.
Other user may have app installed or not installed on their device.
The email will contain some token. Now I want to pass that token to my app. I have read that by deep-linking, its possible. But how will I handle the case when other user have not installed my app yet in their IOS device.
Any help is appreciated.
What you're describing is called Deferred Deep Linking (Deep Linking refers to using a link to open your app, even directly to a specific piece of content, and Deferred means that it works even if the app isn't installed first).
Unfortunately there's no native way to accomplish this yet on either iOS or Android. URL schemes don't work, because they always fail if the app isn't installed. Apple's new Universal Links in iOS 9 get closer, but you'd still have to handle redirecting the user from your website to the App Store
A free service like Branch.io (full disclosure: they're so awesome I work with them) can handle all of this for you though. Here's the docs page covering exactly how to create email links like you described: https://docs.branch.io/pages/emails/email-partners-list/

iOS Conversion / installation Tracking

Objective: i want to fetch my custom parameter(referrer) from iTunes link upon installation of my application in device.
iTunes links look somethings like this:
https://itunes.apple.com/in/app/complete-gym-guide-lite/id550449574?mt=8
If i append my parameter say(&referrer=xyz)at the end and i open this url in ios safari browser then it will prompt to download the application.
Confusion: will app store send my parameter(referrer) to my application on launch so that i can fetch it in my application and use it.
In case of Android play store link look like this: http://play.google.com/store/apps/details?id=&referrer=guid%3D%guid%
As you can see referrer parameter at the end of url. Once app is installed in device then play store will send this parameter to app using INSTALL_REFERRER broadcast receiver. We can use this parameter.
What i tried OR Other people doing for conversion tracking: Other people are simply sending static data to their server at the first time opening of app and maintain a flag in NSDefault to make sure that app does not send same data again. I can also do the same as well as alternate ways suggested in below links but i want to do something with custom parameter.
I have already seen below links:
iOS - track which ad campaigns my installs are coming from
Tracking iOS installs from multiple marketing sources
Please help me out.
As #Aditya said, for now, Apple is not sending any referrer (or params) from iTunes to installation.
The only way you have it's to use a third party sdk to get your installations.
I have been working on a own sdk to get this but the way to get any info it's really hard and not really confident to use it. So endly we used some third party which are using many techniques to getting this (as fingerprint data, App2App methods, etc...)
I have tested appsflyer sdk and facebook sdk, they work as expected, use this or any else you prefer.
Hope this helps

Can I do an app like Find my iphone in iOS?

I want to create an app which has the following features.
Track friends / family members location
Locate/track the stolen device location
Lock the device, delete the device datas by using desktop or by SMS.
Most of the above features are provided by Apple's "Find my iPhone" app. But I just want to know whether is it possible to create such an app.
From my understanding, Apple wont let the developers to use private API's and they wont allow to erase datas (like Messages, Calls details) remotely.
Please suggest me some ideas.
If you create any app which directly competes with any of the apples build app will be rejected by appstore.. But most of the above things you can do with private api's and with the help of a web service..
It wasn't possible prior to iOS7. App was not able to respond to any remote calls. There is a new API which "can" be used to solve similar things: http://mobile.tutsplus.com/tutorials/iphone/ios-7-sdk-mutlitasking-enhancements/ or http://www.objc.io/issue-5/multitasking.html (Remote notifications). You may be able to track your friends or stolen device, but not to lock or erase it.
There is a way to remotely erase the iPhone without Apple's Find My iPhone - via Exchange account. There are some open source implementations of MS Exchange, so there may be a chance to make a service which would be able to wipe the device. But even when you make that service, there will be a need to add the "exchange account" into the iDevice. I am not aware of any function which can do so programmatically.
Anyway - You can do an app which is similar to Apple's apps, but it must be somehow different. It must provide some special content or functionality, otherwise it will be rejected.

Resources