2016-11-30 6 views
1

これは私のコードです:オープンfileOpener Ionic2とのappフォルダ内のファイル

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

と私にあるファイルapp.apkにアクセスできません。エラー:

Status : 9 
Error : File Not Found 

アプリのフォルダ内のファイルにアクセスすることは可能ですか?まあ

+0

プラグインのドキュメントは、 _このプラグインはデバイスファイルシステムのファイルをデフォルトのapplication._で開きますので、デバイスファイルシステムではなくアプリケーションファイルシステムであるため、このプラグインが動作するかどうかわかりません –

+0

これはとても悲しいことです...どのようなアイデアをしてください?私はこれをどのようにすることができますか? – ADiL

+0

すぐに考えられるのは、.apkファイルを最初にデバイスファイルシステムにダウンロードしてコードを実行することです –

答えて

2

まあ、私はアプリは、サーバから、私が電話で作成したローカルフォルダにダウンロードし、すぐに/それを自動的にインストールしますことによって、それをやった、ここで

は、1日に必要な他のケースの誰かのコードです:

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(); 
    }); 
    } 
} 

任意の説明は私に聞いてください。

+0

こんにちは2つの質問、1あなたの答えを受け入れることによってあなたの質問を閉じることができますか?そして2. apkのインストールにはどんなプラグインを使いましたか? – Ivaro18

+0

ありがとうございました。 プラグインはFileOpenerです。電話の中でapkを開くだけで、自動的にインストーラがトリガされます – ADiL

0

ユーザーが.apkファイルをダウンロードしたいために、あなたは(あなたのHTML内)

<a href="assets/app.apk" download>Download apk</a>

を使用することができます。しかし、ユーザーが手動で(ポップアップをかタップ)彼のダウンロードを開く必要がありますへあなたのアプリをインストールしてください。

apkファイルをインストールできるプラグインがあるかどうかわかりません。 (グーグルでionic 2 install external apkは結果を返さなかった)。

関連する問題