change default application on iphone - iphone

Is there any way to change the default application? E.g. change mailto: behavior to launch 3rd party application when user selects an email address anywhere on iphone OR launch SMS application when user selects a phone number.
Thanks for your help!

Nicolas is correct. To use some of the default applications (you mentioned SMS) you simply need to call the appropriate URL handler.
Please refer to: http://iosdevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html
You cannot override the default handlers. Apple have made it very clear that they do not want to confuse the user by providing applications that duplicate basic iPhone functionality. The most famous case is Google Voice (http://www.techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/)

You need to use URL handlers. I'm not sure if you can override default handlers (mailto: http:...), but have a look at this guide:
http://www.mobileorchard.com/apple-approved-iphone-inter-process-communication/

Related

Changing the action of a default ios application

I was wondering if it would be possible to change, or at least interfere, with how one of the Apple applications works. For example, would it be possible to have my app run in the background and have an alert box pop up instead of sending an email in the Mail app. The action could have a 'cancel' or 'send' option. I was just wondering if Apple would allow this if it was clearly stated as an app that would interfere with the current function of another app.
Neither is it possible to do this, nor would Apple allow it.

How can I block custom applications using URL schemes in iPhone?

I have worked a bit with URL schemes and have managed to access a custom app that i created using another app. My requirement is to block my custom apps once the battery level goes less than a certain level.
Is there any way to do that? What data will I have to pass through the URL scheme?
By block i mean either disable or uninstall completely. Just seeking some control.
You cannot completely block your application from launching if it's being opened through URL scheme. I suggest checking whether your app is launched by opening a scheme and then just display an alert view with a notice that your app requires the phone to have more battery power (or be charging).
i think you should use push notification, it can handle your requirement

How to block incoming phone calls, text messages and email in Objective C

Is there any way to block incoming phone calls, text messages and email. Will appstore allows these kind of applications on appstore. Please help me if this is possible or not.
It is now possible from iOS 10 to block the unwanted calls
Checkout the CallKit framework
CallKit introduces app extensions that enable call blocking and caller identification. You can create an app extension that can associate a phone number with a name or tell the system when a number should be blocked.
Update: Never say never :) iOS 10 introduced this possiblity, see other answers.
Original:
NO, this is not possible with public API (and non-jailbroken devices)
And NO, Apple would never allow any app that disrupts the expected standard system behavior
Apple will never allow any third party application to do any illegal things without user's knowledge. This is the policy I think apple has applied to ensure his user's that their data are safe in their iphone. U can consider mails, calls, sms to be under those categories. There may be others which I might have missed.
Please refer this link for your knowledge
Only Apple can do that and unfortunately for you they plan to do otherwise.. :/
Even if it is called "smart", all in all your target device is a "phone" so the basic phone functionalities should not be ever blocked, and the phone manufacturers do not allow this for third party applications.
Rajan is correct you can block the incoming phone calls from iOS 10.
Create a Call Directory Extension , use the addBlockingEntry(withNextSequentialPhoneNumber:) method to pass the blocked numbers to the system.
Now it's end of 2018 and actually you can really do something with Apple's latest API.
As #Rajan stated, with CallKit API (iOS 10+) you can achieve call blocking and identification (i.e. show additional info on the incoming call screen for the caller's phone number).
You can also do SMS and Call Reporting (iOS 11+) as well, where you have access to the SMS content if the number is not in your Contacts.

iPhone. Open application during call

Is there any way to do this?
In other words, is it possible during a call to allow the user to open a certain application? (for example, to provide information based on the person who is calling).
If not, will something like this be available on iOS 4?
You can open an application during a call (not automatically).
User can press the home button (the one that is under the screen) during a call and open some third party application.
Another issue is to retrieve the contact that the user is talking to now - I believe that this is impossible.
Regarding iOS 4 - I am pretty sure that this will be possible...
No.
AFAIK, there are two ways to launch an application:
The user taps the icon
The user responds to a push notification
You cannot directly control when your app is launched. Furthermore, once your app is running, there is no way to access information about the current call.

Does iPhone provide any API for inserting menu selections into e-mail, SMS and Addressbook context menus?

The Blackberry APIs allow one to insert custom menu items (and corresponding event handlers) into their standard email, SMS and Address book context menus. Is there any supported way to do this with iPhone APIs?
No, Apple doesn't provide these kinds of hooks. However there are some tricks I've seen - one example is what Twitterific does to tweet pages that you are viewing in Safari, via Bookmarklet which uses a Custom URL to launch Twitterific.
Perhaps you can do something similar by having a text containing a custom URL. I've never tried this but it's worth experimenting with.
As of SDK 3.1.2, no, that's not possible. In fact there's very little you can change! There's not even an easy way to change the colour of the title bar!