我们正在开发一个使用Native File Transfer插件的应用程序。但由于一个奇怪的问题,我们无法为iOS创建测试飞行/发布版本。
问题: 即使成功安装了'文件传输'插件我们在使用
运行应用程序时看到以下错误ionic cordova run ios -lc
console.warn: Native: tried accessing the FileTransfer plugin but it's not installed.
当我们点击一个调用fileTransfer.download(..)
方法的按钮时,应用暂停执行而不会抛出任何错误。
我已在日期和代码中创建了详细的帖子:
https://github.com/ionic-team/ionic-native/issues/2110
任何帮助??
答案 0 :(得分:2)
经过彻底的头脑风暴后,我找到了答案 -
我的问题是FileTransfer对象可以从platform ready
函数内部访问,但不能在provider
内访问 - 这也是 iOS [Android版本正常工作]
这是我做的:
因为我需要FileTransfer
中provider
的实例 - 我创建了一个变量 - 和一个更新程序方法 -
private fileTransfer: any;
public setFileTransferRef( param ){
this.fileTransfer = param;
}
由于我可以访问FileTransfer
中的platform.ready()
- 我在那里实例化了FileTransferObject
并更新了provider
,如下所示 -
initializeApp() {
this.platform.ready().then(() => {
console.log('fileTransfer: ');
console.log(JSON.stringify(this.fileTransfer));
//
let fileTransfer: FileTransferObject = this.fileTransfer.create();
//
this.mediaIOSProv.setFileTransferRef(fileTransfer);
.....
....
mediaIOSProv
是负责下载zip的提供商。我还在cordova.js
build/vendor.js
之后添加了index.html
- (我发现了一些帖子,其中开发人员报告这样做解决了他们丢失的插件问题) - 虽然没有这样的官方文件。
<body>
<!-- Ionic's root component and where the app will load -->
<ion-app></ion-app>
<!-- The polyfills js is generated during the build process -->
<script src="build/polyfills.js"></script>
<!-- The vendor js is generated during the build process
It contains all of the dependencies in node_modules -->
<script src="build/vendor.js"></script>
<!-- cordova.js required for cordova apps -->
<script src="cordova.js"></script>
<!-- The main bundle js is generated during the build process -->
<script src="build/main.js"></script>
</body>
由于应用程序在iOS上成功运行 - 我不敢改变 放置
cordova.js
我认为是 -
1:最好创建一个Provider
来存储在平台准备好的实例化的每个Native插件的引用 - 并在需要时使用引用
2:关于Ionic-Native Wrapper
任何建议/讨论都将受到高度赞赏。
答案 1 :(得分:0)
使用此:
先运行ionic cordova platform add [platform]
,然后运行ionic cordova build [platform]
,然后在设备中运行。
它对我有用!
答案 2 :(得分:0)
移除平台
然后再次添加平台