APK 在开发服务器、React Native 之外无法正常工作

问题描述 投票:0回答:1

我是使用 React Native 环境的新手,当我在没有任何开发服务器的情况下测试

debug-app.apk
时,我在理解我的应用程序发生了什么方面遇到了一些困难。

我的意思是,目前的问题是:将 Onesignal API 的 userId 发送到我的 API,oneSignal 也没有捕获我的设备,并使用 AXIOS 上传文件,当我在模拟器中运行我的应用程序时,问题不存在.

有谁知道为什么吗?

无论我如何尝试重新加载应用程序,当 OneSignal 尝试连接到我的设备时,我的 API 都会发送状态:400,但是当我在模拟器中执行此操作并有权访问 Metro 服务器时,API 会发送状态 400第一次尝试时,由于某种原因,我不知道 OneSignal 在第一次尝试中没有捕获 userId,但是,在其他尝试中,API 正在发送 status:200,并且 OneSignal 运行良好。而且,无论如何,当我在开发服务器中时,axios 上传文件得很好,而在外部它甚至不调用 API。

我的axios API连接和上传文件的代码:

import axios from 'axios'

var URL = {
    http: '<MY API>',
}

if (process.env.NODE_ENV !== 'dev') {
    URL = {
        http: '<MY API>',
    }
}

export const api = axios.create({
    baseURL: URL.http,
})

console.log(JSON.stringify(api))

import { token } from '../../graphql/storage'
import { api } from '../../services/api'

export type ImageUploadProps = {
    uri: string
    type: string
    name: string
}
interface Props {
    uploadImages: ImageUploadProps
}

export const upload = async ({ uploadImages }: Props) => {
    const clientToken = await token()
    const data = new FormData()

    data.append('file', uploadImages)
    // uploadImages.forEach(item => data.append('files', item))

    try {
        const res = await api.post('/upload', data, {
        headers: {
            'Content-Type': 'multipart/form-data',
             authorization: `Bearer ${clientToken}`,
        },
    })
    return res.data
    } catch (e) {
        console.log('UploadErro:', JSON.stringify(e))
    }
}

我的 OneSignal 初始化:

const initOneSignal = async () => {
        OneSignal.setAppId('<MY APPID>')
        OneSignal.setLogLevel(6, 0)
        OneSignal.setRequiresUserPrivacyConsent(false)
        OneSignal.promptForPushNotificationsWithUserResponse()

        return OneSignal
   }
const onesignal = await initOneSignal()
    const data = await onesignal.getDeviceState()

    if (data) {
        try {
            await setNotificationId({
                variables: {
                    input: {
                        client_id,
                        notificationId: data!.userId,
                    },
                },
            })
        } catch (e: any) {
            console.log(JSON.stringify(e)) //erro aqui
        }
    }

我真的不知道为什么会发生这种情况,出于某种原因,我认为我的设备没有连接到 API,但是我的应用程序有一个实时聊天功能,运行得非常好,并且访问 API 的其他功能也运行良好.

react-native api apk react-native-firebase react-native-onesignal
1个回答
0
投票

我已经找到了解决方案,我刚刚发布了生产版本

gradlew assembleRelease 
,效果很好

© www.soinside.com 2019 - 2024. All rights reserved.