How to implement the multitasking where to open the other application from my application (for example: opening my PDF document in to the iBooks app)?
See the documentation for UIDocumentInteractionController. It offers the functionality to give the user a preview of a document and present her with a list of apps in which she can open this document.
AFAIK it is not possible to send a PDF to iBooks programmatically without user interaction.
Related
I would like to enable interaction between a native iOS application and the Safari browser such that tapping a right click on an image on a webpage provides an option in the context menu to send the image to another custom written native iOS application for further processing and/or storage.
However, according to this article from Safari Developer Library, “Safari extensions are not currently supported on iOS”.
Is there any other alternative to achieve the above functionality?
You have multiple choices here:
You could register in your application's Info.plist file that your app known how to handle certain type of documents (see here in Apple's doc). This way when your iPhone encounters this document type, iOS will propose the user to open this document in your app; for example if you register for the PDF type and you then tap on a PDF document as an attachment in a mail, you app will be listed in the proposed menu and will then be opened with the document as a parameter.
But it seems that even if this works perfectly for any type like DOC, PDF, or even custom types, it does not work for images, which seems to be handled in a separate way by iOS :(
A simpler way would be to register, still in your application's Info.plist, any custom URL schemes. See here and below in the Apple's doc. For example when, anywhere in your iPhone (either in your own app, or in another third-party app, including Safari), it encounters URLs like "myapp://xxx/yyy/zzz", it opens your app, passing this URL as an argument. You can then do whatever you want with this URL.
The solution then is to add some code in your web page so that when the image is tapped, you ask Safari to open the URL "myimageditor://edit?url=http://www.url.of/your/image.jpg". If you registered for the "myimageeditor://" URL scheme, you app will then open with the URL in the parameters, and you then will be able to retrieve the image using the embed URL.
I think it is possible only for jailbroken devices.
There appears to be iPad applications that can edit MSWord documents such as "Pages". My question is how can this be accomplished programmatically? Are these apps using OpenXML to do this or is there another way to do it. An API or something? Thanks in advance.
These applications such as Pages use private code to read documents and edit it. At this time there is no OpenXML library for the iPhone SDK. The iOS provides a way to display documents (doc, ppt, xls, pdf) by using the UIWebView but no other API.
Developing a word editor is a real challenge, we did a small rich text editor and it was a very interesting project.
Good luck!
You can now show a button which will allow the user to press it and send the document to another app for editing, the list of apps the file can be sent to is managed by Apple code, so you don't have to do much. Google "ios document controller"
Is there a way to launch Voice Control programmatically just like you can launch Safari? If so, how?
Other apps can be opened only if there is a URL scheme they've registered. This is how you can open Safari or Mail or even Maps programmatically, but not arbitrary applications. The list of Apple supported applications with URL schemes are documented here.
Unfortunately, Voice Control does not have a documented URL scheme, so it cannot be launched programmatically.
Is it possible to open another app, like Camera, from a third-party app? I know there are URL schemes - http://wiki.akosma.com/IPhone_URL_Schemes - but I just want to open an app, not send any data to the app.
Unfortunately, no. Launch Services is private API on the iPhone. You application can launch another app only through trying to open a URL registered by that app or a file document the app understands. However, as far as I know, your app has no control over or knowledge about which app exactly will handle the URL or the file.
One way to fire up the camera from within your app, of course, is the UIImagePickerController class.
http://developer.apple.com/iphone/library/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html
It's not quite what you're asking, but it might be as close as you're going to get.
I have a query regarding launching a native application from a link of website on iPhone.
I will explain.
Generally a web based application is used to work online without using any feature of iPhone device (such as GPS, Camera, Accelerometer etc.)
I have a iPhone specific website which performs many tasks online.
Now while keeping all the functionality same, I want to add a feature of taking a picture from iPhone in-built camera.
i.e. when user clicks a button on website "Take Picture", my native application should be launched, which will take a picture and do specific tasks..
How to capture a event of button click which is performed on website?
Should I use UIWebView or Safari?
I know that using URL Scheme we can launch Safari from native application.
But how to achieve the opposite as explained above?
All other functionality works great on website, so I don't want to convert the whole website into native application.
(Otherwise I will have to deal with web services). Only this functionality needs to be added.
Register a URL Handler, then have a link on your site to myapphandle://some.parameters.here/
A la: http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html