скачать apk для файловой системы Android и установить его - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь загрузить файл Android .apk в папку загрузок во внутренней файловой системе Android.Я пробовал много вещей, таких как react-native-fs, react-native-install-apk, экспо FileSystem, и в настоящее время я пытаюсь заставить react-native-simple-download-manager работать.Вот ссылка для справки https://www.npmjs.com/package/react-native-simple-download-manager.

Файловая система Expo не выдавала никаких ошибок, но я не смог получить доступ к APK для ее установки, потому что не смог найти .apk в файловой системе.

Я не очень понимаю, почему, но все эти пакеты используют синтаксис вместо импорта.Я попытался использовать require и импортировать пакет, как обычно import ReactNativeDownloadManager from 'react-native-simple-download-manager';, и я продолжаю получать сообщение об ошибке, что он не может найти функцию загрузки внутри undefined.Очевидно, что он неправильно импортируется, потому что я заглянул внутрь ReactNativeDownloadManager по следующей ссылке https://github.com/master-atul/react-native-simple-download-manager/blob/master/index.js. Я также получу следующий совет, если наведу курсор на сам импорт.

Не могунайдите файл объявления для модуля «Reaction-native-simple-download-manager».'d: /React/SpringApp/node_modules/react-native-simple-download-manager/index.js' неявно имеет тип 'any'.

    Could not find a declaration file for module 'react-native-simple-download-manager'. 'd:/React/SpringApp/node_modules/react-native-simple-download-manager/index.js' implicitly has an 'any' type.
  Try `npm install @types/react-native-simple-download-manager` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-native-simple-download-manager';`

Я попытался запустить это в командной строкеи я получаю эту ошибку.

npm ERR! code E404
npm ERR! 404 Not Found: @types/react-native-simple-download-manager@latest

Если кто-то может направить меня в правильном направлении для решения этой проблемы или указать мне лучший способ скачать APK, пожалуйста, сделайте!Спасибо.

import React, {Component} from 'react';
import {
    StyleSheet,
    Text,
    Image,
    View,
    TouchableOpacity,
    AsyncStorage,
    Linking,
    Platform,
} from 'react-native';
import Expo from 'expo';
import StarRating from 'react-native-star-rating';
import {
    Icon
} from 'react-native-elements';

import ReactNativeDownloadManager from 'react-native-simple-download-manager';   

export default class ViewApp extends Component {

    constructor(props) {
        super(props);
        this.state = {
            starCount: this.props.navigation.state.params.app.rating,
            appInfo: [{
                APP_DETAIL_DESC: ""
            }],
            sid: '',
            header: this.props.navigation.state.params.app.title,
        };
    }

    _installAndroid(url) {

        headers = {
             'Authorization': 'Bearer'
         };
         config = {
             downloadTitle: this.props.navigation.state.params.app.title,
             downloadDescription: 'spring app download',
             saveAsName: 'springAppID'+ this.props.navigation.state.params.app.id,
             allowedInRoaming: true,
             allowedInMetered: true,
             showInDownloads: true,
             external: false, //when false basically means use the default Download path (version ^1.3)
             path: "Download/" //if "external" is true then use this path (version ^1.3)
         };

        ReactNativeDownloadManager.download(url = url, headers = headers, config = config).then((response) => {
             console.log('Download success!');
             alert("success");
         }).catch(err => {
   console.log('Download failed!');
   console.log(err)
   alert("fails");
         })
    }

    installApp = () => fetch(`OMITTED`, {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                appid: this.props.navigation.state.params.app.id,
                staffno: this.state.sid,
            })
        })
        .then((response) => response.json())
        .then((responseJson) => {
            if (Platform.OS === 'ios') {
                Linking.openURL(JSON.parse(responseJson.GetDownladURLResult));
            }
            else {
                this._installAndroid(JSON.parse(responseJson.GetDownladURLResult));
            }
        })
        .catch((error) => {
            console.error(error);
        });

PS: да, я знаю, что там написано, а не скачать.это уже существующий сервис, который находится вне моего контроля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...