使用 fileOpener Ionic2 打开 app 文件夹中的文件
Open a file within the app folder with fileOpener Ionic2
这是我的代码:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { FileOpener } from 'ionic-native';
@Component({
selector: 'page-installHelper',
templateUrl: 'installHelper.html'
})
export class InstallHelper {
constructor(public navCtrl: NavController) {
FileOpener.open('assets/app.apk', 'application/vnd.android.package-archive').then(
function(){
console.log("success");
}, function(err){
console.log("status : "+err.status);
console.log("error : "+err.message);
});
}
}
但我无法访问 assets/app.apk
中的文件 app.apk
我得到错误:
Status : 9
Error : File Not Found
甚至可以访问应用程序文件夹中的文件吗?
既然您希望用户下载 .apk
文件,您可以使用(在您的 html 中)
<a href="assets/app.apk" download>Download apk</a>
但用户必须手动打开下载(或点击弹出窗口)才能安装您的应用。
我不知道是否有能够安装这些 apk
文件的插件。 (谷歌搜索 ionic 2 install external apk
没有 return 任何结果)。
好吧,我是通过将应用程序从服务器下载到我在 phone 中创建的本地文件夹并安装它来实现的 immediately/automatically、
这是代码,以防有一天其他人需要它:
import { Component } from '@angular/core';
import { Platform, LoadingController } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { FileOpener } from 'ionic-native';
import { File } from 'ionic-native';
import { Transfer } from 'ionic-native';
import { HomePage } from '../pages/home/home';
declare var cordova: any;
@Component({
template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class MyApp {
rootPage = HomePage;
constructor(platform: Platform, public loadingCtrl: LoadingController) {
let me = this;
platform.ready().then(() => {
let loading = me.loadingCtrl.create({
content: 'Preparing The App ...'
});
loading.present();
File.createDir(cordova.file.externalDataDirectory, "appFolder", true).then(function(link){
const fileTransfer = new Transfer();
let url = 'http://yourserverhere.com/app.apk';
fileTransfer.download(url, cordova.file.externalDataDirectory +"appFolder/app.apk").then((entry) => {
loading.dismiss();
FileOpener.open(entry.toURL(), "application/vnd.android.package-archive").then(
function(){
console.log("success");
},function(err){
console.log("status : "+err.status);
console.log("error : "+err.message);
});
}, (error) => {
console.log(error);
});
},function(error){
console.log(error);
});
StatusBar.styleDefault();
Splashscreen.hide();
});
}
}
有什么解释就问我吧
这是我的代码:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { FileOpener } from 'ionic-native';
@Component({
selector: 'page-installHelper',
templateUrl: 'installHelper.html'
})
export class InstallHelper {
constructor(public navCtrl: NavController) {
FileOpener.open('assets/app.apk', 'application/vnd.android.package-archive').then(
function(){
console.log("success");
}, function(err){
console.log("status : "+err.status);
console.log("error : "+err.message);
});
}
}
但我无法访问 assets/app.apk
中的文件 app.apk我得到错误:
Status : 9
Error : File Not Found
甚至可以访问应用程序文件夹中的文件吗?
既然您希望用户下载 .apk
文件,您可以使用(在您的 html 中)
<a href="assets/app.apk" download>Download apk</a>
但用户必须手动打开下载(或点击弹出窗口)才能安装您的应用。
我不知道是否有能够安装这些 apk
文件的插件。 (谷歌搜索 ionic 2 install external apk
没有 return 任何结果)。
好吧,我是通过将应用程序从服务器下载到我在 phone 中创建的本地文件夹并安装它来实现的 immediately/automatically、
这是代码,以防有一天其他人需要它:
import { Component } from '@angular/core';
import { Platform, LoadingController } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { FileOpener } from 'ionic-native';
import { File } from 'ionic-native';
import { Transfer } from 'ionic-native';
import { HomePage } from '../pages/home/home';
declare var cordova: any;
@Component({
template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class MyApp {
rootPage = HomePage;
constructor(platform: Platform, public loadingCtrl: LoadingController) {
let me = this;
platform.ready().then(() => {
let loading = me.loadingCtrl.create({
content: 'Preparing The App ...'
});
loading.present();
File.createDir(cordova.file.externalDataDirectory, "appFolder", true).then(function(link){
const fileTransfer = new Transfer();
let url = 'http://yourserverhere.com/app.apk';
fileTransfer.download(url, cordova.file.externalDataDirectory +"appFolder/app.apk").then((entry) => {
loading.dismiss();
FileOpener.open(entry.toURL(), "application/vnd.android.package-archive").then(
function(){
console.log("success");
},function(err){
console.log("status : "+err.status);
console.log("error : "+err.message);
});
}, (error) => {
console.log(error);
});
},function(error){
console.log(error);
});
StatusBar.styleDefault();
Splashscreen.hide();
});
}
}
有什么解释就问我吧