我正在尝试开发一个我可以提供给客户的页面,这样他们就可以将页面作为iframe
包含在他们现有的角度应用中。我需要列出用户docs
和allo
,以便从我在pdf
中提供的页面打开应用上的iframe
文档。
我正在使用$cordovaFileTransfer
从服务器下载文件,并$cordovaFileOpener2
尝试在设备上打开文件,如果构建我的应用程序但是当我尝试将其作为Iframe
我收到"Cordova is not defined"
错误,因此即使cordova
在父页面上运行,也无法从iframe
访问$scope.getFile = function(){
if(window.cordova){
var url = $scope.url;
var filename = url.split("/").pop();
alert(filename);
var targetPath = cordova.file.externalRootDirectory + filename;
var trustHosts = true;
var options = {};
alert(cordova.file.externalRootDirectory);
$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
// Success!
console.log('here1: ',JSON.stringify(result));
//alert(JSON.stringify(result));
$cordovaFileOpener2.open(
targetPath,
'application/pdf'
).then(function() {
console.log('Success here');
}, function(err) {
console.log('An error occurred here: ' + JSON.stringify(err));
});
}, function(error) {
// Error
console.log('here2: ',JSON.stringify(error));
//alert(JSON.stringify(error));
}, function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
})
});
}else{
alert('Error: Cordova is not defined');
}
。还有另一种方法可以解决这个问题吗?
这是当用户点击查看文件时调用的函数,正如我所提到的那样,如果我构建一个独立的应用程序,那就完美了:
{{1}}