我想做同样的事情,在苹果文档中解释这篇文章,但在Appcelerator Titanium中。我搜索了Appcelerator网站并没有找到方法。有人知道吗? https://developer.apple.com/library/content/qa/qa1587/_index.html
答案 0 :(得分:1)
您需要在tiapp.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
<ios>
<plist>
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Add to Housters</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string>
<string>com.microsoft.word.doc</string>
</array>
</dict>
</array>
</dict>
</plist>
</ios>
</ti:app>
然后,在您的应用程序代码中,每次触发resume
事件时(例如Ti.App.addEventListener('resume', resume);
),您都可以查看Ti.App.getArguments().url
以查看您的应用已通过另一个应用程序打开。在我的应用中,我这样做,另外我扫描Inbox
文件夹以查看是否有任何内容。当另一个应用程序在您的应用程序中打开文档时,它会被复制到此目录中,然后您的应用程序将启动。因此Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'Inbox').getDirectoryListing() || []
将为您提供所有文档的数组,然后您可以移出该目录,或处理和删除。