Handle local files in default iOS application - ios

I have files that are stored in the Document directory. The url scheme for them is file:/// and so on. Is there a way to handle such files with appropriate default app. Lets say I have a video file there and instead of handling play in my app, it opens in the default iOS app for video playback. Or maybe I have a doc file and it should open in MS Word if it is installed.
What I tried is this. It did not work. I believe the openURL method depends on the URL scheme which is always file:/// in this case. Even if I know what type of file it is, how do I go about opening it in default outside application.

What I did was use UIDocumentInteractionController.
You can preview and choose to open in other app. Or you can just open.
It works for documents, video and probably audio(not tested) files. The preview player for the video is not that great.
For a demo tuts.plus.

Related

Save audio file to a user-friendly location swift 3 avfoundation

I am writing a simple recorder application which can record/play audio (via. AVFoundation) and save it locally to the iOS device. I've found several sources de
Initially, I would have liked to send out multiple of these saved audio files via email (MessageUI) such as with this simple example: https://gist.github.com/kellyegan/49e3e11fe68b5e6b5360 - though recently I have felt maybe I should forego this in favor of simply saving to the device and allowing the user to send out the file somehow.
Considering this, I feel it might be best to try to save the audio file to a more user-friendly destination. Is there any way I can save these files locally that might allow the user to 'share' them via iOS (outside of my application)? Maybe even to their iTunes library? This seemed promising: iOS - Save audio files to iTunes music library - but looks like the solution provided is actually for saving images to the 'photo album'
When I print the audio file's URL I get something like
'file:///var/mobile/Containers/Data/Application/AA3E5177-A8C8-4FFA-8EBC-85A2A6844A88/Documents/recording-2017-03-06-12-54.m4a'
I am a serious noob w/ Swift 3 and definitely with AVFoundation - I'd really appreciate any and all help/advice. Thanks in advance!
The URL 'file:///var/mobile/Containers/Data/Application/AA3E5177-A8C8-4FFA-8EBC-85A2A6844A88/Documents/recording-2017-03-06-12-54.m4a' may look elaborate to you, but in fact it is totally "user-friendly". It's a file in the app's Documents folder! Nothing could be simpler than that.
The URL in question would never be seen by the user; in fact, it won't even be the same between runs of your app.
Your app can certainly provide interface for the user to select one or more files, and can make them available for sharing out by means of UIActivityViewController or UIDocumentInteractionController.
You might also want to look into UIDocumentPickerViewController or even https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html
iOS apps are heavily sandboxed. The app's Documents directory (at the path you posted) is the typical place for files like this. You can enable file sharing from the app in iTunes (on the user's computer) by adding the UIFileSharingEnabled key (Application supports iTunes file sharing) to your Info.plist file.
The typical way to enable sharing within the app is by using UIDocumentInteractionController or UIActivityViewController.

Open link from DropBox app to My App

Is there any way to open link from dropbox app to my own App ?
I want to play audio file from dropbox app to my app.
Thanks.
The solution for this isn't specific to Dropbox.
You need to setup your app to indicate that it can open certain types of files (such as audio files). Once you do that, then any app, such as the Dropbox app, that offers an "Open In" option for those types of files will show your app as one of the options.
To learn how to register your app for certain types of files, see How do I associate file types with an iPhone application?

How to export downloaded audio file(from within app folder) to user accessible music folder in IOS

I am using Xamarin to develop an IOS app. Here the user has an option to download audio files to the document folder within the app, and play it later on.
But i would like to provide an option for the user to access it in music folder or somewhere else, so that user does not have to come back to app to listen it.
Like we save images to camera roll, can we save mp3 or any other audio file to default music folder in IOS. Any solution or ideas using xamarin or xcode are welcome.
Note: I already know about File Sharing with itunes, i am looking for something else explained above.
As I know this isn't possible due to the limitations within iOS

How to restore the file type association in iOS

Some of you may have tried an App named Phone Drive, it took over the file type like mp3, pdf etc.
But what if I want to restore the association to the default app?
For example, previously when I opened a link to mp3 in Safari, Safari plays it. But when I am using Phone Drive, I need to download it in that App and play it later.
Any suggestion?
Please ignore the below one. iOS doesn't support wma....
Some of you may have tried an App named Phone Drive, it took over the file type like wma, pdf etc.
Originally, when I clicked a link to wma file in Safari, it is opened in a player embed in the web page.
However, after I installed and removed that App, when I tap on the same link, Safari pops out an alert says it can not download the link.
Any solution? Thank you.

How can you import text files into an iPad application?

For a school project, I am writing an iOS iPad application in which the user is capable of inputting sentences into core data that are used elsewhere in the system; however, my professor has now asked for another feature in which the user is capable of somehow entering sentences from some other interface than the iPad's keyboard. For instance, the most desirable solution is to be able to write sentences into text files and import them into the application through iTunes.
I have seen a few different apps capable of receiving files through iTunes, such as the VLC app in which the user can place videos into the VLC app's video storage. This allows VLC to then load the videos. I'm wondering if there is a good way or even if it's possible to do this with text files in my app, so that I may then read them into core data.
Thanks,
Chris
This is possible... First of all you need to add a value to your info.plist file which enables iTunes file sharing (like with VLC etc.) "UIFileSharingEnabled -> YES"
Then you can store files through iTunes. These files are put into your applications "Documents" - directory... When launching your application, you will need to check if new files are available and handle these changes...
You can also add document types / extensions, so that when you are sent an email with a txt file, it can be opened with your application. How do I register a custom filetype in iOS

Resources