我正在开发一个应用程序,供我们的员工随时随地进行票务跟踪。我们的门票随时附有各种文件类型的附件。
其中许多是我们软件中的文本文件或错误图像,这对于在旅途中检票时的票证至关重要
在Javascript中,我如何让网络浏览器提示用户“你想用什么打开这个文件?”对话?很像以下内容:
我甚至不知道这是否可以通过Javascript实现,但如果是这样的话,那将会对我们有很大的帮助
我知道我们可以直接在Javascript中显示图像,但我们更愿意将文件推迟到设备并让它使用正确的程序处理它(如果文件类型不是图像)
哦,我们正在使用Sencha Touch作为应用程序,以防提供此类任何功能(虽然我在文档中找不到任何功能)
答案 0 :(得分:2)
使用应用打开:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>supportedExtensions</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSIsAppleDefaultForType</key>
<true/>
<key>LSItemContentTypes</key>
<array>
<string>public.comma-separated-values-text</string>
</array>
</dict>
</array>
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// this url contain the -> your file url
}
请记住:处理你的应用程序的内存是你的最佳选择。该文件将被复制到您的应用程序文档目录空间中。你需要管理它。如果您不再需要该文件,您的应用程序将需要将其删除。
在JS中阅读文件:
在javascript中实施以下内容:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
function gotFS(fileSystem) {
fileSystem.root.getFile("exportBHC.csv", {create: true}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file){
readAsText(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
var sqlQuery = {};
var results = evt.target.result;
}