2017-02-24 111 views
0

我正在使用cordova-plugin-file-transfer和插件cordova-plugin-file-opener2
我可以下载APK,但我一直在运行到这个错误不断时:Cordova - fileOpener2 - 未找到活动:未找到活动处理意图

错误状态: - :未发现活动时间:9错误消息无活动 处理意向{行动= android.intent.action.VIEW DAT =内容:// IO .cordova.myappd06b01.opener.provider/external_files/Android/data/io.cordova.myappd06b01/files/someapp.apk typ = application/vnd.android.package-archive flg = 0x40000000}

var targetPath = encodeURI(cordova.file.externalCacheDirectory + app_name); 
var options = {}; 
var args = { 
    name: app_name, 
    url: event.url, 
    targetPath: targetPath, 
    options: options 
}; 

downloadReceipt(args); 

function downloadReceipt(args) { 

var fileTransfer = new FileTransfer(); 
var uri = encodeURI(args.url); 
      fileTransfer.download(
       uri, 
       args.targetPath, 
       function (entry) { 
        var pathToFile = cordova.file.externalCacheDirectory + args.name; 
        window.resolveLocalFileSystemURL(pathToFile, function (entry) { 
         cordova.plugins.fileOpener2.open(
          entry.toURL(), 
          'application/vnd.android.package-archive', { 
           error: function (e) { 
            console.log('Error status: ' + e.status + ' - Error message: ' + e.message); 
           }, 
           success: function() { 
            console.log('file opened successfully'); 
           } 
          } 
         ); 
        }, function (e) { 
         console.log('File Not Found'); 
        }); 
       }, 
       function (error) { 
        console.log("download error source " + error.source); 
        console.log("download error target " + error.target); 
        console.log("upload error code" + error.code); 
       }, 
       true, 
       args.options 
    ); 
} 
var targetPath = encodeURI(cordova.file.externalCacheDirectory + app_name); 
var options = {}; 
var args = { 
    name: app_name, 
    url: event.url, 
    targetPath: targetPath, 
    options: options 
}; 

downloadReceipt(args); 

function downloadReceipt(args) { 

var fileTransfer = new FileTransfer(); 
var uri = encodeURI(args.url); 
      fileTransfer.download(
       uri, 
       args.targetPath, 
       function (entry) { 
        var pathToFile = cordova.file.externalCacheDirectory + args.name; 
        window.resolveLocalFileSystemURL(pathToFile, function (entry) { 
         cordova.plugins.fileOpener2.open(
          entry.toURL(), 
          'application/vnd.android.package-archive', { 
           error: function (e) { 
            console.log('Error status: ' + e.status + ' - Error message: ' + e.message); 
           }, 
           success: function() { 
            console.log('file opened successfully'); 
           } 
          } 
         ); 
        }, function (e) { 
         console.log('File Not Found'); 
        }); 
       }, 
       function (error) { 
        console.log("download error source " + error.source); 
        console.log("download error target " + error.target); 
        console.log("upload error code" + error.code); 
       }, 
       true, 
       args.options 
    ); 
} 
+0

看来你的插件没有正确安装。尝试再次安装它。 –

+0

不,对不起,仍然没有运气 –

+0

可以打印出pathToFile,条目,entry.toURL()... 该路径应该是类似于 文件:///storage/sdcard/download/internalLocalApplication.apk –

回答

0

我创建了示例程序及其工作正常。

<script type="text/javascript"> 
    function clickMe(){ 
     alert("Function called"); 

     cordova.plugins.fileOpener2.open(
      '/sdcard/Download/android-debug.apk', 
      'application/vnd.android.package-archive' 
     ); 
    } 

</script> 

<body> 
    <button onclick="clickMe();">Click Me</button> 

    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="js/index.js"></script> 
    <script type="text/javascript"> 
     app.initialize(); 
    </script> 
</body> 

</html> 

它对我很好。 它打开了应用程序下载程序。

+0

我相信这个问题已经在脚本中解决了。我与github上关于该bug的开发者进行了交流。 –

+0

好吧没问题。 – Hiten

相关问题