QML-тип ShareProvider
Принимает файлы и оповещает о передаче данных другим приложением. Подробнее…
| Строка импорта: | import Sailfish.Share 1.0 | 
Свойства
- capabilities : list
 - method : string
 - registerName : bool
 
Сигналы
- triggered(list resources)
 
Подробное описание
Принимает отправленные файлы и с помощью ShareProvider::triggered
оповещает о передаче данных другим приложением.
Для реализации обмена данными с приложением необходимо использовать данный элемент. Следует определить метод отправки в desktop-файле. Например:
[Desktop Entry]
Type=Application
Name=My application
Icon=my-application
Exec=my-application
X-Share-Methods=images;
[X-Application]
ApplicationName=MyApplication
OrganizationName=org.example
Permissions=Internet;UserDirs;RemovableMedia
[X-Share Method images]
Description=Send to friends
Capabilities=images/png;images/jpeg
SupportsMultipleFiles=yes
Изменения, которые необходимо внести в приложение, — это определение методов отправки и добавление их списка.
В разделе X-Application необходимо определить соответствующие разрешения для приложения,
зависящие от расположения ожидаемых файлов.
Общие для всех приложений файлы хранятся на устройстве в каталогах,
определённых разрешением UserDirs либо одним из более конкретных разрешений каталогов.
Таким же образом с помощью разрешения RemovableMedia могут быть доступны файлы,
хранящиеся на карте памяти.
Если принимающее приложение не имеет доступа к файлу отправляющего приложения,
передача файла не гарантируется.
Метод отправки должен быть указан в ключе X-Share-Methods и иметь свой собственный раздел.
В последующем в диалоговом окне будет отображаться информация в виде краткого описания
метода отправки.
Локализация осуществляется с помощью ключей в desktop-файле.
Например, Description[ru] будет определять русскоязычную версию Description,
которая загружается, когда на устройстве установлен русский язык.
Если подходящая переведённая версия не может быть найдена,
по умолчанию используется нелокализованная версия.
Необходимо обработать регистрацию имени D-Bus на сеансовой шине в приложении.
Чтобы действия выполнялись последовательно, необходимо использовать средства C++.
Во избежание состояния «гонки» при регистрации объектов на D-Bus
не следует использовать DBusInterface.
Пример:
 int main(int argc, char *argv[])
 {
     QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
     QScopedPointer<QQuickView> view(SailfishApp::createView());
     // ...
     view->setSource(SailfishApp::pathToMainQml());
     // После загрузки QML регистрируется сервис
     QDBusConnection::sessionBus().registerService("org.example.MyApplication");
     return app->exec();
 }
Можно поместить ShareProvider непосредственно под ApplicationWindow и определить в нём
то же значение имени метода.
Например:
 ApplicationWindow {
     id: root
     // ...
     ShareProvider {
         method: "images"
         capabilities: ["image/png", "image/jpeg"]
         onTriggered: {
             root.activate() // Показать окно
             // Передаёт ресурсы для обработки в коде. Диалоговое окно позволяет запросить 
             // у пользователя дополнительную информацию, прежде чем работать с данными.
             var dialog = pageStack.push("SendPicturesDialog.qml", { 'resources': resources })
         }
     }
 }
Можно зарегистрировать несколько методов отправки,
определив несколько разделов X-Share Method и элементов ShareProvider.
Необходимо использовать отличающиеся друг от друга имена методов для каждого раздела,
после чего использовать те же имена в соответствующем компоненте QML.
Необходимо проверять все полученные ресурсы перед их использованием.
Описание свойств
capabilities : list
Список MIME-типов, которые принимает метод отправки.
Если требуется принудительно проверять получаемые MIME-типы при отправке, следует установить
для этого параметра то же значение, что и для X-Share Method <method>/Capabilities.
Например, если Capabilities — image/png;image/jpeg,
то значением свойства будет [«image/png», «image/jpeg»].
Проверка MIME-типов не будет выполняться, если:
- свойство не заполнено;
 - установлено значение 
undefined; - или один из типов имеет значение 
*. 
Не следует доверять тому, что содержимое ресурса соответствует заявленному MIME-типу.
Компонент только проверяет, соответствует ли получаемый MIME-тип
установленному здесь значению capabilities.
См. также ShareAction::mimeType.
method : string
Имя метода отправки, определённое в desktop-файле.
Необходимо установить методу то значение, которое указано в списке X-Share-Methods
и в имени раздела X-Share Method в desktop-файле приложения.
registerName : bool
Для автоматической регистрации имени на сессионной шине D-Bus,
необходимо установить свойству значение true.
Это применимо только для простых случаев использования, т. е. когда в приложении имеется
только один ShareProvider, и оно не предоставляет сервисы D-Bus для чего-либо ещё.
В противном случае требуется зарегистрировать имя в C++ после загрузки компонентов ShareProvider.
Описание сигналов
triggered(list resources)
Данный сигнал испускается при использовании метода отправки.
Обработчиком сигнала является функция onTriggered.
Аргумент представляет собой список ресурсов, которые были предоставлены приложению.
Дополнительные сведения о ресурсах см. в разделе ShareResource.