Я использую облачные изображения с помощью Ionic framework через cloudinary-angular
библиотеку, и у меня возникают некоторые проблемы с загрузкой изображений.
Когда я тестирую метод ionic serve
, все работает нормально. Однако, когда я устанавливаю приложение на устройство, изображения прерываются. У кого-нибудь есть идеи, как это исправить?
Ниже приведены некоторые примеры моего кода:
<cl-image ng-if="item.Attachment.name" public-id="{{bucket.mybucket}}/{{item.Attachment.name}}" crop="thumb" width="100" height="100" radius="max" format="png"></cl-image>
<cl-image ng-if="!item.Attachment.name" public-id="{{bucket.mybucket}}/{{bucket.defaultCheese}}" crop="thumb" width="100" height="100" radius="max" format="png"></cl-image>
а также:
$scope.backgroundImg = $.cloudinary.url($scope.bucket.mybucket + "/" + results.response[0].Attachment.name, { format: 'png', height: 800, width: 580, crop: 'fit' }).toString();
И, как я уже сказал, обе эти работы используют ionic serve
.
Обновление. Используя инструмент отладки Safari, я обнаружил следующее.
Исправлена одна проблема. Проблема с безопасностью транспорта приложений была устранена добавлением следующего в приложение Info.plist в разделе Resources/MyApp-Info.plist
. Более подробная информация содержится в App Transport Security.
Исправлена вторая проблема: закончилась проблема с облачной библиотекой. По какой-то причине он возвращает URL-адрес с file://
prototocol вместо http://
который требуется приложению. См. Решение через мою функцию robksawyer/cloudinary_angular.
вероятно, ошибка белого списка?
см. полную информацию здесь https://github.com/apache/cordova-plugin-whitelist
Быстрая информация
// install plugin
cordova plugin add cordova-plugin-whitelist
Затем соответствующим образом измените свой config.xml
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
См. Документацию, приведенную выше для полного объяснения
cordova plugin add cordova-plugin-whitelist
и он дал мне следующее: