Откройте файл .ppt в приложении PowerPoint из React Native (IOS) - PullRequest
1 голос
/ 14 марта 2020

Я знаю, что могу использовать import {Linking} from 'react-native', чтобы использовать Linking.canOpenURL(url) и открыть другое приложение.

Я могу открыть PowerPoint , выполнив это: Linking.canOpenURL('ms-powerpoint://app'), но мне нужно откройте там файл.

Согласно Документации Microsoft Я должен быть в состоянии сделать это:

Linking.canOpenURL('ms-powerpoint:ofv|u|https://blablabla.com/file.pptx'), но приложение сообщает мне:

« Извините, файл file.pptx хранится в неподдерживаемом расположении сервера. »

Еще я подумал, что сначала нужно загрузить файл и отправить локальный путь, но, хотя он открывает PowerPoint и показывает сообщение «Загрузка / открытие», оно выглядит так, как будто это пустой сеанс.

Вот небольшой фрагмент кода:

import React from 'react';
import {Button, Linking} from 'react-native';
import RNFS, {DownloadFileOptions} from 'react-native-fs';

function ShowPPTComponent(props) { 

  function openFile() {
    const {file} = props;

    const temporalStoragePath = `${RNFS.DocumentDirectoryPath}/${file.name}.${file.extension}`;

    const options = {
      fromUrl: file.url,
      toFile: temporalStoragePath,
    };

    // Downloads the file.
    RNFS.downloadFile(options as DownloadFileOptions).promise.then(() => {
      const url = `ms-powerpoint:ofv|u|${temporalStoragePath}`;
      // Goes to PowerPoint
      return Linking.openURL(url);
    });
  }

  return (
     <Button onPress={openFile} title="Open in PowerPoint" />
  );
}

INFO PLIST

  <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>launch-ppt</string>
      <string>powerpoint</string>
      <string>ms-powerpoint</string>
      <string>open-ppt</string>
    </array>
  <key>LSSupportsOpeningDocumentsInPlace</key>
    <true/>
  <key>UIFileSharingEnabled</key>
    <true/>
  <key>UISupportsDocumentBrowser</key>
    <true/>

Примечания:

В другом месте приложения я показал опции IOS Share, и я смог выбрать PowerPoint и открыть файл, и он отлично работает. Таким образом, и файл, и приложение PowerPoint работают хорошо.

(Идея состоит в том, чтобы не показывать IOS Share Modal, но напрямую открывать PowerPoint с файлом).

Заранее спасибо!

...