2017-08-22 17 views
5

Tôi đang gặp phải sự cố đã xảy ra trong ứng dụng ionic3.Plugin Chuyển Tệp Ionic không hoạt động trong phiên bản sản xuất

Để tôi mô tả chi tiết tình hình của mình: Thực ra tôi cần hỗ trợ ngoại tuyến cho ứng dụng ionic của mình. vì vậy mỗi khi tôi gọi API, tôi lưu trữ dữ liệu vào bộ nhớ cục bộ. và cũng tải xuống hình ảnh từ api vào thư mục cục bộ của tôi. để tôi có thể tìm nạp dữ liệu và hình ảnh khi internet không có sẵn từ các tài nguyên cục bộ.

Tôi đang sử dụng plugin này để tải ảnh từ máy chủ đến địa phương: https://ionicframework.com/docs/native/file-transfer/

Nó đang làm việc tốt nếu tôi chạy lệnh sau đây:

ionic cordova run android 

Nhưng nó không làm việc khi tôi chạy lệnh sau đây :

ionic cordova run android --prod 

Code:

import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer'; 
import { File } from '@ionic-native/file'; 

constructor(private transfer: FileTransfer, private file: File) { } 

const fileTransfer: FileTransferObject = this.transfer.create(); 

download() { 
    const url = 'http://www.example.com/file.pdf'; 
    fileTransfer.download(url, this.file.dataDirectory + 'file.pdf').then((entry) => { 
    console.log('download complete: ' + entry.toURL()); 
    }, (error) => { 
    // handle error 
    }); 
} 

Tôi không nhận được bất kỳ lỗi hoặc sự cố nào từ bảng điều khiển. Vì vậy, tôi không biết những gì tôi đang mất tích. Ngoài ra còn có sự cho phép lưu trữ cục bộ được cấu hình tốt. để cho phép không phải là một vấn đề.

Cảm ơn bạn đã nâng cao về thời gian và trả lời của bạn.

+0

Làm thế nào bạn nói nó không hoạt động? – Sampath

+0

@Sampath Nó không hiển thị bất kỳ lỗi nào hoặc bắt đầu tải xuống. –

+0

@HiteshUpadhyay xin lỗi, tôi không thể tìm thấy bất kỳ giải pháp nào, nhưng có lẽ chúng tôi có thể sử dụng một cái gì đó như pro-guard để ngăn chặn các mã sản xuất gây xáo trộn. – Mohsen

Trả lời

5

Cuối cùng tôi tìm thấy giải pháp cho vấn đề này! tại đầu tiên bạn nên cập nhật này ra lệnh:

npm i @ionic/[email protected] --save 
npm i [email protected] --save 

Và có lẽ đâu đó trong mã của bạn, bạn gọi bất cứ điều gì liên quan đến tập tin chuyển giao Plugin trước

platform.ready.then()

Trong trường hợp của tôi: Tôi tiêm một số dịch vụ bao gồm một dòng như sau:

this.fileTransfer = this.transfer.create();

Và tôi đã thay đổi nó thành:

this.platform.ready().then(() => { 
    // Okay, so the platform is ready and our plugins are available. 
    // Here you can do any higher level native things you might need. 
    this.fileTransfer = this.transfer.create(); 
}); 

Bây giờ mọi thứ hoạt động tốt.

Xem chi tiết:

Tại sao công việc này trong chế độ gỡ lỗi?

câu trả lời là rất rõ ràng, bởi vì trong chế độ gỡ lỗi thiết bị sẵn sàng sự kiện cho một thời gian dài cho lửa và chuyển tập tin được gọi là sau này hoàn toàn! Nhưng ở chế độ sản xuất, thiết bị sẵn sàng bắn rất nhanh và chuyển tập tin được gọi trước đó. Tôi hy vọng điều này sẽ giúp bạn.

+0

Cảm ơn bạn rất rất nhiều, nó đã giúp tôi rất nhiều :) –

Các vấn đề liên quan