Откройте файл в папке приложения с помощью файла Opener 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);
});
}
}
но я не могу получить доступ к файлу app.apk, который находится в assets/app.apk
и я получаю ошибку:
Status : 9
Error : File Not Found
Можно ли получить доступ к файлу в папках приложения?
2 ответа
Я сделал это, загрузив приложение с сервера в локальную папку, созданную в телефоне, и установив его сразу / автоматически,
Вот код на тот случай, если кому-то еще понадобится один день:
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();
});
}
}
Любое объяснение просто спросите меня.
Ну, так как вы хотите, чтобы пользователь загрузил .apk
файл, который вы могли бы использовать (в вашем HTML)
<a href="assets/app.apk" download>Download apk</a>
Но пользователю придется вручную открыть свои загрузки (или нажать всплывающее окно), чтобы установить ваше приложение.
Я не знаю, есть ли плагин, который способен установить эти apk
файлы. (Гугл для ionic 2 install external apk
не дал никаких результатов).