Nguyen Minh
Nguyen Minh

Reputation: 61

Implement File Upload like Dropbox by Appcelerator

I want to implement File Upload function like Dropbox. I use Appcelerator. This function can upload file from Acrobat, iBook, Work, Excel, Drive etc. And make in on iOS.

I have researched on Appcelerator but could not find any solution for this.

I dont know how to access to local storage on iOS or working with another app by Appcelerator.

Can you give me any suggestion about this problem

Thank you very much

Upvotes: 1

Views: 114

Answers (1)

Dawson Toth
Dawson Toth

Reputation: 5680

You should register CFBundleDocumentTypes in your tiapp.xml ios element, which works the same as modifying the Info.plist in Xcode would for an Obj-C or Swift app. Once you have that completed, you can listen for the resume event in your app, and look at Ti.App.getArguments() to see if your app was launched by choosing "Open In" from another app. You can also look at the folder Inbox inside of Ti.Filesystem.applicationDataDirectory to see if there are any new files in there -- that's where iOS will place them when sharing them to your app.

Your code for handling the document could look like this (in your resume handler):

var cmd = Ti.App.getArguments(),
    inboxFiles = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'Inbox').getDirectoryListing() || [];
if (inboxFiles.length > 0) {
    inboxFiles = inboxFiles.sort(byLastCreated).map(toTiFile);
    if (!cmd.url) {
        cmd.url = inboxFiles[0].getNativePath();
    }
    if (inboxFiles.length > 1) {
        for (var i = inboxFiles.length - 1; i >= 1; i--) {
            inboxFiles[i].deleteFile();
        }
    }
}
if (cmd && cmd.url && cmd.url.indexOf('file://') === 0) {
    // TODO: Do something interesting with cmd.url.
}

Upvotes: 1

Related Questions