Поділитися через


Розробка компонованих програм для автономної роботи

Користувачам мобільного зв'язку часто потрібно бути продуктивними, навіть якщо підключення до Інтернету обмежене або відсутнє. Під час створення компонованої програми можна виконувати наступні завдання:

  • Відкривайте Power Apps програму «Мобільні пристрої» та запускайте програми, коли пристрій не підключено до мережі.
  • Визначте, коли програма працює в автономному режимі, в Інтернеті або на лімітованому з'єднанні за допомогою об'єкта сигналу Підключення.
  • Синхронізуйте дані між вашим пристроєм і сервером.

Якщо ваш додаток підключається до, Dataverse вбудована підтримка в автономному режимі. Power Apps дозволить вам завантажувати дані на ваш пристрій і завантажувати зміни назад на Dataverse. Якщо ваш додаток не використовується Dataverse, ви можете використовувати колекції та використовувати функції LoadData та SaveData для основного сховища в автономному режимі.

Примітка

  • Автономна можливість для програм на полотні доступна під час запуску програм за допомогою рідних Power Apps мобільних програвачів на iOS Windows Android.
  • Компоновані програми, що працюють у веб-браузері, не можуть виконуватись в автономному режимі, навіть якщо браузер запущено на мобільному пристрої.
  • В компонованих програмах у Teams можна передавати не більше1 МБ даних за допомогою функцій LoadData та SaveData, що зручно для невеликої кількості текстових рядків, чисел і дат. Це обмеження не допускає зображення та інші мультимедійні файли. Додаткові відомості: довідкові матеріали з функцій LoadData та SaveData

Увімкніть підтримку в автономному режимі в програмі Canvas на основі A Dataverse

Для Microsoft Dataverse програм на основі полотна потрібно використовувати вбудовану функцію в автономному режимі під час роботи в автономному режимі. Докладнішу інформацію наведено в статтях Налаштування мобільного пристрою в автономному режимі для програм Canvas і Робота з програмами Canvas в автономному режимі. Одним натисканням перемикача ваша програма може працювати з Dataverse даними, де б ви не були, з підключенням до мережі або без нього. Просто створіть свій додаток за стандартними Power Fx формулами, і функція офлайн впорається з усіма складними завданнями за вас.

Використовуйте LoadData та SaveData для всіх інших конекторів

Цей розділ містить приклад використання даних Twitter. Ще простіший приклад, який не вимагає підключення, наведений в описі функцій LoadData та SaveData.

Перегляньте це відео, щоб дізнатися, як створювати програми для роботи в автономному режимі на полотні, які не використовують Dataverse дані.

Обмеження

LoadData та SaveData разом утворюють простий механізм для зберігання невеликої кількості даних на локальному пристрої. Ці функції можна використовувати для додавання до програми простих можливостей для автономного режиму.

Ці функції обмежені обсягом доступної пам’яті програми, оскільки вони працюють з колекцією у внутрішній пам'яті. Об'єм доступної пам'яті може змінюватись залежно від пристрою, операційної системи, пам'яті яку використовує Power Apps Mobile, а також складності програми з точки зору екранів і елементів керування. Якщо ви зберігаєте більше, ніж кілька мегабайтів даних, протестуйте програму з очікуваними сценаріями на пристроях, на яких вона буде запускатись. Як правило, ви матимете 30-70 мегабайтів доступного об'єму пам'яті.

Ці функції також не підтримують автоматичного вирішення конфліктів злиття при переході пристрою в онлайн режим. За конфігурацію збереження даних та обробки повторного підключення відповідає розробник, який створює вирази.

Щоб отримати оновлення щодо роботи в автономному режимі, поверніться до цього розділу та підпишіться на блог Power Apps.

Зведення

Під час проектування сценаріїв в автономному режимі, слід спочатку подумати про роботу програм із даними. Програми Power Apps в основному отримують доступ до даних через набір з'єднувачів, які надає платформа, наприклад SharePoint, Office 365 та Microsoft Dataverse. Також можна створити власні з'єднувачі, надають програмам доступ до будь-якої служби, яка надає кінцеву точку RESTful. Це може бути веб-API або служба, наприклад, функції Azure. Усі ці з'єднувачі використовують HTTPS через Інтернет, тобто користувачі мають бути в онлайні для отримання доступу до даних і будь-яких інших можливостей, які пропонує служба.

Програма Power Apps зі з’єднувачами.

Обробка даних в автономному режимі

у Power Apps можна узгоджено фільтрувати, шукати, сортувати, збирати та маніпулювати даними, незалежно від джерела даних. Діапазон джерел включає в себе, наприклад, колекції у внутрішній пам’яті програми, списки, створені за допомогою Списків Microsoft, бази даних SQL та Dataverse. Завдяки цій узгодженості, програму можна легко перепризначити для використання іншого джерела даних. Що особливо важливо для роботи в автономному режимі, можна використовувати локальні колекції для керування даними майже без змін до логіки програми. Навіть навпаки, локальні колекції — основний механізм обробки даних в автономному режимі.

Створення автономної програми

Щоб зосередити увагу на автономному аспектах розробки програм, у цьому розділі демонструється простий сценарій, зосереджений на Twitter. Ми створимо програму, яка дозволяє читати записи Twitter і надсилати звістки під час роботи в автономному режимі. Коли програма переходить в онлайн режимі, вона публікує звістки і перезавантажує локальні дані.

На високому рівні, програма виконує наступні завдання:

  • Коли користувач відкриє програму:

    • Якщо пристрій перебуває в онлайн режимі, програма отримує дані за допомогою з'єднувача Twitter і заповнює ними колекцію.
    • Якщо пристрій перебуває в автономному режимі, програма завантажує дані з локального кеш-файлу за допомогою функції LoadData.
    • Користувач може надсилати звістки. Якщо програма в онлайн режимі, вона публікує звістки безпосередньо в Twitter і оновлює локальний кеш.
  • Кожні п'ять хвилин, коли програма працює в онлайн режимі:

    • Програма публікує всі звістки в локальному кеші.
    • Програма оновлює локальний кеш і зберігає його за допомогою функції SaveData.

Крок 1: Додати Twitter до пустої програми для телефону

  1. Створіть пусту компоновану програму з макетом Телефон.
  2. На вкладці Подання виберіть Джерела даних.
  3. В області Дані виберіть Додати джерело даних.
  4. Виберіть Нове з'єднання > Twitter > Створити.
  5. Введіть облікові дані, створіть підключення, а потім закрийте область даних.

Крок 2: Збирання наявних звісток

  1. В області Подання дерева виберіть пункт Програма, а потім задайте в якості значення властивості OnStart цю формулу:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    

    Формула для завантажування твітів.

  2. В області Подання дерева відкрийте меню "три крапки" об'єкта Програма, а потім виберіть команду Виконати OnStart, щоб виконати цю формулу.

    Виконання формули для завантажування твітів.

    Примітка

    Функції LoadData та SaveData можуть показати помилки в Power Apps Studio, якщо браузери не підтримують їх. Проте, після розгортання цієї програми на пристрій, вони виконуватимуться нормально.

Формула перевіряє, чи знаходиться пристрій в онлайн режимі:

  • Якщо пристрій в онлайн режимі, формула завантажує до 10 звісток з умовою пошуку "PowerApps" у колекцію LocalTweets.
  • Якщо пристрій в автономному режимі, формула завантажує локальний кеш із файлу під назвою "LocalTweets", якщо він доступний.
  1. На вкладці Вставлення, виберіть пункт Колекція > Пуста зі змінною висотою.

  2. Установіть для властивості Елементи елемента керування Колекція значення LocalTweets.

  3. У шаблоні колекції додайте три елементи керування Надпис, а також надайте властивості Текст кожного надпису одне з цих значень:

    • ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
    • Text(DateTimeValue(ThisItem.CreatedAtIso), DateTimeFormat.ShortDateTime)
    • ThisItem.TweetText
  4. Зробіть текст в останньому надписі жирним, щоб у колекція нагадувала цей приклад.

    Колекція з прикладами твітів.

Крок 4: Відображення стану підключення

  1. Вставте в колекцію підпис, а потім задайте його властивості Колір значення червоний.

  2. Задайте значенням властивості Текст найновішого надпису цю формулу:

    If( Connection.Connected, "Connected", "Offline" )

Формула визначає, чи знаходиться пристрій в онлайн режимі. Якщо це так, у підписі відобразиться значення Підключено; в іншому разі відобразиться Автономний режим.

Крок 5: Додавання поля для написання звісток.

  1. Під надписом про стан підключення вставте елемент керування Введення тексту та перейменуйте його на NewTweetTextInput.

  2. Задайте значенням властивості За замовчуванням поля вводу тексту "".

    Колекція над полями відомостей про стан і введення тексту.

Крок 6: Додавання кнопки для публікації звістки

  1. У полі введення тексту додайте елемент керування Кнопка і надайте властивості Текст це значення:

    "Tweet"

  2. В якості значення властивості OnSelect кнопки встановіть цю формулу:

    If( Connection.Connected,
        Twitter.Tweet( "", {tweetText: NewTweetTextInput.Text} ),
        Collect( LocalTweetsToPost, {tweetText: NewTweetTextInput.Text} );
            SaveData( LocalTweetsToPost, "LocalTweetsToPost" )
    );
    Reset( NewTweetTextInput );
    
  3. У властивості OnStart програми, додайте рядок наприкінці формули:

    If( Connection.Connected,
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 100} ) );
            Set( statusText, "Online data" ),
        LoadData( LocalTweets, "LocalTweets", true );
            Set( statusText, "Local data" )
    );
    SaveData( LocalTweets, "LocalTweets" );
    LoadData( LocalTweetsToPost, "LocalTweetsToPost", true );  // added line
    

    Виконання формули для завантажування звісток з рядком без приміток.

Формула визначає, чи знаходиться пристрій в онлайн режимі:

  • Якщо пристрій в онлайн режимі, програма одразу опублікує звістку.
  • Якщо пристрій в автономному режимі, програма захоплює звістку в колекції LocalTweetsToPost і зберігає його на пристрій.

Після цього формула скидає текст у полі введення тексту.

Крок 7: Перевірка на наявність нових звісток

  1. Справа від кнопки додайте елемент керування Таймер.

    Остаточний вигляд програм.

  2. Задайте властивості Тривалість таймера значення 300000.

  3. Задайте властивостям AutoStart та Повтор таймера значення TRUE.

  4. Задайте OnTimerEnd таймера цю формулу:

    If( Connection.Connected,
        ForAll( LocalTweetsToPost, Twitter.Tweet( "", {tweetText: tweetText} ) );
        Clear( LocalTweetsToPost );
        ClearCollect( LocalTweets, Twitter.SearchTweet( "PowerApps", {maxResults: 10} ) );
        SaveData( LocalTweets, "LocalTweets" );
    )
    

Формула визначає, чи знаходиться пристрій в онлайн режимі. Якщо це так, програма надсилає в Twitter всі елементи в колекції LocalTweetsToPost, а потім очищає колекцію.

Перевірка програми

  1. Відкрийте програму за допомогою Power Apps Mobile на мобільному пристрої, підключеному до Інтернету.

    Наявні звістки відобразяться в колекції, а стан відображається як Підключено.

  2. Від'єднайте пристрій від Інтернету, увімкнувши режим "у літаку" та вимкнувши Wi-Fi.

    Надпис стану вказує, що програма працює в автономному режимі.

  3. Поки пристрій працює в автономному режимі, напишіть звістку, яка містить Power Apps, а потім натисніть кнопку Написати в Twitter.

    Звістка зберігається локально в колекції LocalTweetsToPost.

  4. Під'єднайте пристрій до Інтернету, вимкнувши режим "у літаку" та увімкнувши Wi-Fi.

    Максимум через п'ять хвилин програма опублікує звістку, яка відображається в колекції.

Сподіваємося, що ця стаття дала вам уявлення про можливості Power Apps для створення автономних програм. Як завжди, просимо залишити відгук на нашому форумі та надати приклади автономних програм у блозі спільноти Power Apps.

Примітка

Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)

Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).