彻底的头脑风暴后,我找到了答案 -
我的问题是,文件传输对象可以从platform ready
函数内部,但不是provider
内访问 - 这也对的iOS [Android版本工作正常]
这里是我做过什么:
因为我需要provider
内FileTransfer
的实例 - 我创建了一个变量 - 和更新方法 -
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);
.....
....
我也放在与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
来存储在平台内实例化的每个本机插件的引用 - 并在需要时使用引用
2:可能会丢失一些信息,尤其是关于iOS的,关于Ionic-Native Wrapper
任何建议/讨论将不胜感激。