yunjia-cordova-plugin-file-opener
v2.0.0
Published
A File Opener Plugin for Cordova. (The Original Version)
Downloads
10
Maintainers
Readme
A File Opener Plugin for Cordova (The Original Version)
This plugin will open a file on your device file system with its default application.
cordova.plugins.fileOpener2.open(
filePath,
fileMIMEType,
{
error : function(){ },
success : function(){ }
}
);
Installation
$ cordova plugin add cordova-plugin-file-opener2
From release 2.1.0
you can also set the android support version
$ cordova plugin add cordova-plugin-file-opener2 --variable ANDROID_SUPPORT_V4_VERSION={required version}
Requirements
The following platforms and versions are supported by the latest release:
- Android 4.4+ / iOS 9+ / WP8 / Windows
- Cordova CLI 7.0 or higher
Cordova CLI 6.0 is supported by 2.0.19, but there are a number of issues, particularly with Android builds (see 232 203 207). Using the cordova-android-support-gradle-release plugin may help.
fileOpener2.open(filePath, mimeType, options)
Opens a file
Supported Platforms
- Android 4.4+
- iOS 9+
- Windows
- WP8
Quick Examples
Open an APK install dialog:
cordova.plugins.fileOpener2.open(
'/sdcard/Download/gmail.apk',
'application/vnd.android.package-archive'
);
Open a PDF document with the default PDF reader and optional callback object:
cordova.plugins.fileOpener2.open(
'/sdcard/Download/starwars.pdf', // You can also use a Cordova-style file uri: cdvfile://localhost/persistent/Download/starwars.pdf
'application/pdf',
{
error : function(e) {
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
},
success : function () {
console.log('file opened successfully');
}
}
);
Market place installation
Install From Market: to install an APK from a market place, such as Google Play or the App Store, you can use an <a>
tag in combination with the market://
protocol:
<a href="market://details?id=xxxx" target="_system">Install from Google Play</a>
<a href="itms-apps://itunes.apple.com/app/my-app/idxxxxxxxx?mt=8" target="_system">Install from App Store</a>
or in code:
window.open("[market:// or itms-apps:// link]","_system");
fileOpener2.showOpenWithDialog(filePath, mimeType, options)
Opens with system modal to open file with an already installed app.
Supported Platforms
- Android 4.4+
- iOS 9+
Quick Example
cordova.plugins.fileOpener2.showOpenWithDialog(
'/sdcard/Download/starwars.pdf', // You can also use a Cordova-style file uri: cdvfile://localhost/persistent/Download/starwars.pdf
'application/pdf',
{
error : function(e) {
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
},
success : function () {
console.log('file opened successfully');
}
}
);
fileOpener2.uninstall(packageId, callbackContext)
Uninstall a package with its ID
Supported Platforms
- Android 4.4+
Quick Example
cordova.plugins.fileOpener2.uninstall('com.zynga.FarmVille2CountryEscape', {
error : function(e) {
console.log('Error status: ' + e.status + ' - Error message: ' + e.message);
},
success : function() {
console.log('Uninstall intent activity started.');
}
});
fileOpener2.appIsInstalled(packageId, callbackContext)
Check if an app is already installed.
Supported Platforms
- Android 4.4+
Quick Example
cordova.plugins.fileOpener2.appIsInstalled('com.adobe.reader', {
success : function(res) {
if (res.status === 0) {
console.log('Adobe Reader is not installed.');
} else {
console.log('Adobe Reader is installed.')
}
}
});
Android APK installation limitation
The following limitations apply when opening an APK file for installation:
- On Android 8+, your application must have the
ACTION_INSTALL_PACKAGE
permission. You can add it by adding this to your app'sconfig.xml
file:
<platform name="android">
<config-file parent="/manifest" target="AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
</config-file>
</platform>
- Before Android 7, you can only install APKs from the "external" partition. For example, you can install from
cordova.file.externalDataDirectory
, but not fromcordova.file.dataDirectory
. Android 7+ does not have this limitation.
Notes
For properly opening any file, you must already have a suitable reader for that particular file type installed on your device. Otherwise this will not work.
It is reported that in iOS, you might need to remove
<preference name="iosPersistentFileLocation" value="Library" />
from yourconfig.xml
If you are wondering what MIME-type should you pass as the second argument to
open
function, here is a list of all known MIME-types