mirror of
https://gitee.com/shuto/cordova-plugin-file-opener2.git
synced 2025-01-31 12:02:49 +08:00
Update fileOpener2Proxy.js
This commit is contained in:
parent
d84b20e620
commit
0c6cbedb17
@ -1,22 +1,22 @@
|
|||||||
|
|
||||||
var cordova = require('cordova'),
|
var cordova = require('cordova'),
|
||||||
fileOpener2 = require('./FileOpener2');
|
fileOpener2 = require('./FileOpener2');
|
||||||
|
|
||||||
var schemes = [
|
var schemes = [
|
||||||
{ protocol: 'ms-app', getFile: getFileFromApplicationUri },
|
{ protocol: 'ms-app', getFile: getFileFromApplicationUri },
|
||||||
{ protocol: 'cdvfile', getFile: getFileFromFileUri } //protocol cdvfile
|
{ protocol: 'cdvfile', getFile: getFileFromFileUri } //protocol cdvfile
|
||||||
]
|
]
|
||||||
|
|
||||||
function nthIndex(str, pat, n) {
|
function nthIndex(str, pat, n) {
|
||||||
var L = str.length, i = -1;
|
var L = str.length, i = -1;
|
||||||
while (n-- && i++ < L) {
|
while (n-- && i++ < L) {
|
||||||
i = str.indexOf(pat, i);
|
i = str.indexOf(pat, i);
|
||||||
if (i < 0) break;
|
if (i < 0) break;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFileFromApplicationUri(uri) {
|
function getFileFromApplicationUri(uri) {
|
||||||
/* bad path from a file entry due to the last '//'
|
/* bad path from a file entry due to the last '//'
|
||||||
example: ms-appdata:///local//path/to/file
|
example: ms-appdata:///local//path/to/file
|
||||||
*/
|
*/
|
||||||
@ -26,9 +26,9 @@ function getFileFromApplicationUri(uri) {
|
|||||||
var applicationUri = new Windows.Foundation.Uri(newUri);
|
var applicationUri = new Windows.Foundation.Uri(newUri);
|
||||||
|
|
||||||
return Windows.Storage.StorageFile.getFileFromApplicationUriAsync(applicationUri);
|
return Windows.Storage.StorageFile.getFileFromApplicationUriAsync(applicationUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFileFromFileUri(uri) {
|
function getFileFromFileUri(uri) {
|
||||||
/* uri example:
|
/* uri example:
|
||||||
cdvfile://localhost/persistent|temporary|another-fs-root/path/to/file
|
cdvfile://localhost/persistent|temporary|another-fs-root/path/to/file
|
||||||
*/
|
*/
|
||||||
@ -46,15 +46,15 @@ function getFileFromFileUri(uri) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return getFileFromNativePath(path);
|
return getFileFromNativePath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFileFromNativePath(path) {
|
function getFileFromNativePath(path) {
|
||||||
var nativePath = path.split("/").join("\\");
|
var nativePath = path.split("/").join("\\");
|
||||||
|
|
||||||
return Windows.Storage.StorageFile.getFileFromPathAsync(nativePath);
|
return Windows.Storage.StorageFile.getFileFromPathAsync(nativePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFileLoaderForScheme(path) {
|
function getFileLoaderForScheme(path) {
|
||||||
var fileLoader = getFileFromNativePath;
|
var fileLoader = getFileFromNativePath;
|
||||||
|
|
||||||
schemes.some(function (scheme) {
|
schemes.some(function (scheme) {
|
||||||
@ -62,34 +62,36 @@ function getFileLoaderForScheme(path) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return fileLoader;
|
return fileLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
open: function (successCallback, errorCallback, args) {
|
open: function (successCallback, errorCallback, args) {
|
||||||
|
|
||||||
var path = args[0];
|
var path = args[0];
|
||||||
|
|
||||||
var getFile = getFileLoaderForScheme(path);
|
var getFile = getFileLoaderForScheme(path);
|
||||||
try{
|
|
||||||
getFile(path).then(function (file) {
|
getFile(path).then(function (file) {
|
||||||
var options = new Windows.System.LauncherOptions();
|
var options = new Windows.System.LauncherOptions();
|
||||||
|
|
||||||
|
try{
|
||||||
Windows.System.Launcher.launchFileAsync(file, options).then(function (success) {
|
Windows.System.Launcher.launchFileAsync(file, options).then(function (success) {
|
||||||
successCallback();
|
successCallback();
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
errorCallback(error);
|
errorCallback(error);
|
||||||
});
|
});
|
||||||
|
}catch(error){
|
||||||
|
errorCallback(error);
|
||||||
|
}
|
||||||
|
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
console.log("Error while opening the file: "+error);
|
console.log("Error while opening the file: "+error);
|
||||||
errorCallback(error);
|
errorCallback(error);
|
||||||
});
|
});
|
||||||
}catch(error){
|
|
||||||
errorCallback(error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
require("cordova/exec/proxy").add("FileOpener2", module.exports);
|
require("cordova/exec/proxy").add("FileOpener2", module.exports);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user