2013-03-07 31 views
12

Có cách nào để có đường dẫn tuyệt đối của hình ảnh trong thư mục tài sản điện thoại không?Nhận đường dẫn tuyệt đối vào thư mục nội dung trong PhoneGap

Tôi cần đường dẫn tuyệt đối để đính kèm hình ảnh trong thư bằng plugin EmailComposer.

EmailComposer Plugin muốn một đường dẫn tuyệt đối như thế này:

/storage/sdcard0/DCIM/Camera/20121124_125210.jpg 

Nhưng hình ảnh tôi muốn đính kèm nằm trong thư mục tài sản của tôi và một con đường như thế này:

file:///android_asset/www/img/logo.png 

không hoạt động

Trả lời

2

Có vẻ như điều này là không thể.

Xem https://groups.google.com/forum/#!topic/phonegap/Sw2wThOYm8c

Từ phản ứng của Simon trong đó chủ đề ông nói ...

"Bạn không thể làm những gì bạn muốn làm. Các tập tin trong thư mục tài sản không phải là về mặt kỹ thuật trên hệ thống tập tin để họ không thể truy cập thông qua File API.Điều này có nghĩa là cửa sổ gọi. resolveLocalFileSystemURI() sẽ không trả lại cho bạn một FileEntry. Nó là đúng trả về một mã lỗi của 1 đó là NOT_FOUND_ERR. "

Bạn cần đường dẫn tuyệt đối của tệp cho plugin đính kèm email để hoạt động. Thật không may nếu tập tin nằm trong thư mục tài sản, bạn không thể sử dụng tập tin api của cordova để có được đường dẫn tuyệt đối.

Có một plugin tồn tại để sao chép tệp ra khỏi thư mục nội dung của bạn và đặt chúng vào sdcard. Sau đó, bạn có thể chuyển vị trí chính xác của tệp này tới plugin đính kèm email. Rất tiếc, có vẻ như plugin dưới đây đã lỗi thời nếu bạn định sử dụng các phiên bản cordova mới hơn.

https://github.com/gkcgautam/Asset2SD

+1

Tôi chưa thể nhận xét về câu trả lời của người khác vì tôi không có đủ điểm, nhưng câu trả lời của người đóng gói không chính xác. Xem câu trả lời ở trên của tôi như là một lời giải thích là tại sao nó không chính xác. Nó có thể có thể đã làm việc trên các phiên bản cũ của android và phonegap, nhưng nó chắc chắn không hoạt động trên cordova/phonegap 2.0.0 +.Phương pháp này sẽ không hoạt động đối với các tệp được lưu trữ trong apk không may. – njtman

9

Chỉ trong trường hợp ai đó vẫn đang tìm kiếm giải pháp. Bây giờ Cordova thực hiện một cách thực sự dễ dàng để có được những thư mục ứng dụng hiện tại (được hỗ trợ trên Android, iOS và BlackBerry 10):

cordova.file.applicationDirectory

Ví dụ, nếu bạn muốn truy cập vào một tập tin âm thanh trong thư mục res/audio của bạn (trong vòng bạn www), bạn chỉ cần phải viết rằng:

cordova.file.applicationDirectory + 'res/audio/my-audio-file.mp3'

đây là tài liệu đầy đủ: https://github.com/apache/cordova-plugin-file/#where-to-store-files

+3

Tôi tin rằng bạn cần nó là cordova.file.applicationDirectory + 'www /' + 'res/audio/my-audio-file.mp3' Ít nhất đó là cách iOS hoạt động cho tôi. – edhubbell

+0

Giống như @edhubbell, tôi cũng cần thêm 'www /'. – mauvm

+1

cordova.file.applicationDirectory trả về chỉ là một ngoại lệ đối với tôi (không xác định) – andreimarinescu

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