标签: react-native-android

如何将React-native与后端服务器集成?

我使用django作为后端,并为应用程序做出反应原生.当应用程序在react-native app中打开时componentDidMount(),该方法将通过url请求django服务器:

export default class App extends React.Component {
    constructor(props) {
        super(props)
    }
    componentDidMount() {
        this.fromServer()
    }
    fromServer() {
        var headers = new Headers();
        headers.append('Accept', 'application/json');
        let a = fetch('http://xxx.xxx.xx.xx:8080/posts/', headers)
            .then(function(response) {
                console.log('fetched...')
                    if (response.status !== 200) {
                        console.log('There was a problem. Status Code: ' +  response.status);  
                        return;
                    }
                    response.json().then(function(data) {  
                        console.log(data);
                    });  
                }  
            )  
            .catch(function(err) {  
                console.log('Fetch Error :-S', err);  
            });
    }
    render() {
        return (
            <View>
                <ListView dataSource=?????></ListView>
            </View>
        );
   }
}
Run Code Online (Sandbox Code Playgroud)

服务器将响应一组json对象.像这样:

[
    { …
Run Code Online (Sandbox Code Playgroud)

javascript django react-native react-native-listview react-native-android

8
推荐指数
1
解决办法
1629
查看次数

在React Native中打开Android系统设置

我尝试了这个答案,但它不适用于Android

如何打开"设置" Linking.openURL('setting-url-here')

谢谢

android react-native react-native-android

8
推荐指数
1
解决办法
5170
查看次数

31.0.0不是有效的SDK版本。选项是26.0.0未版本化

将expo版本更新为31.0.0后,我无法再运行我的应用程序。我需要此升级才能提供iOS 12版本的支持。尝试构建Android应用后,您将无法再使用它。

我的package.json如下所示:

{
  "name": "myapp",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "react-native-scripts": "1.13.1",
    "jest-expo": "^31.0.0",
    "react-test-renderer": "16.3.0-alpha.1"
  },
  "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
  "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "jest"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "expo": "^31.0.4",
    "react": "16.5.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-31.0.1.tar.gz",
    "react-native-image-slider": "^2.0.3",
    "react-native-onesignal": "^3.1.4",
    "react-native-progress": "^3.4.0",
    "react-native-render-html": "^3.9.3",
    "react-navigation": "^1.5.11"
  }
}
Run Code Online (Sandbox Code Playgroud)

app.json看起来像:

{
  "expo": {
    "sdkVersion": "31.0.0",
    "name": "myapp",
    "slug": "myapp",
    "version": "0.1.1",
    "isDetached": true,
    "detach": …
Run Code Online (Sandbox Code Playgroud)

java android android-studio react-native-android android-studio-3.0

8
推荐指数
2
解决办法
6572
查看次数

在本机应用程序中为设备自动设置调试服务器主机和端口

有没有办法在本机应用程序中为设备自动设置调试服务器主机和端口?

我必须触发这个菜单并为我的应用程序设置一个代理,我希望它在应用程序安装时自动完成。那可能吗?

在此处输入图片说明

debugging react-native react-native-android react-native-debugger

7
推荐指数
1
解决办法
7799
查看次数

无法从“node_modules\react-native-gesture-handler\createHandler.js”解析“fbjs/lib/areEqual”

我正在使用 expo 构建一个 react-native 应用程序,但是,我有一个错误,因此我无法继续构建该应用程序。我什至在错误消息中提到的 node_modules 中查找文件。我正在使用 react-native-gesture-handler 进行屏幕导航。如果我卸载了 react-native-gesture-handler 并删除了导航代码,这会解决我的错误吗?我该如何解决?

应用程序.js

import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import Plan from './screens/Plan';
import Home from './screens/Home';


const AppNavigator = StackNavigator({
  PlanScreen: { screen: Home },
  HomeScreen: { screen: Plan }
});

export default class App extends Component {
  render() {
    return (
      <AppNavigator/>
    )
  }
}

Run Code Online (Sandbox Code Playgroud)

主页.js

import React, { Component } from 'react';
import { View, Text, Button, TextInput } from 'react-native'; …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android react-native-navigation expo react-datepicker

7
推荐指数
2
解决办法
3265
查看次数

无法解析模块`stream`

这个错误突然开始出现。

Node : v10.16.3
React native : 0.60.5
react-native-cli: 2.0.1
Run Code Online (Sandbox Code Playgroud)

捆绑失败:错误:无法stream从/Users/username/React Native/SampleApp/node_modules/browser-stdout/index.js以下位置解析模块:模块stream在 Haste 模块映射中不存在

它给出了这一行的错误:

var WritableStream = require('stream').Writable
Run Code Online (Sandbox Code Playgroud)

我尝试通过 npm 安装“流”

npm install stream
Run Code Online (Sandbox Code Playgroud)

然后其他类似的错误开始出现。

npm react-native react-native-android

7
推荐指数
1
解决办法
3506
查看次数

Pure React Native 应用程序在以发布模式打开后在滑动时崩溃

我正在为我的纯RN 0.61.2应用程序使用React-Navigation。当我在调试模式下使用它时,该应用程序运行完美。但是,在发布模式下,当我尝试打开抽屉导航菜单或在选项卡菜单中向下滚动时,应用程序会立即崩溃。

依赖项:

...
  "dependencies": {
    "@react-native-community/async-storage": "^1.6.2",
    "@react-native-community/netinfo": "^4.4.0",
    "@react-native-community/slider": "^2.0.2",
    "react": "16.9.0",
    "react-native": "0.61.2",
    "react-native-admob": "^2.0.0-beta.6",
    "react-native-gesture-handler": "^1.4.1",
    "react-native-reanimated": "^1.3.0",
    "react-native-screens": "1.0.0-alpha.23",
    "react-native-vector-icons": "^6.6.0",
    "react-navigation": "^4.0.10",
    "react-navigation-drawer": "^2.2.2",
    "react-navigation-stack": "^1.9.3",
    "react-navigation-tabs": "^2.5.5"
  },
...
Run Code Online (Sandbox Code Playgroud)

我已经将这些代码行添加到android/app/build.gradle的依赖项中:

    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
Run Code Online (Sandbox Code Playgroud)

在 App.js 中,我试过

import {enableScreens} from 'react-native-screen';
enableScreens();
Run Code Online (Sandbox Code Playgroud)

并且

import {useScreens} from 'react-native-screen';
useScreens();
Run Code Online (Sandbox Code Playgroud)

用2.0.0-alpha.1,2.0.0-alpha.3和1.0.0-alpha.23版本react-native-screens。

然而,我仍然得到相同的结果:调试模式完美运行,释放模式在抽屉导航滑动或标签导航滚动后急剧崩溃。


我使用adb logcat并看到的解决方案 …

android react-native react-native-android react-native-navigation

7
推荐指数
0
解决办法
1295
查看次数

如何在 React Native 中旋转字体真棒图标?

在我的 React Native 应用程序中,我有一个很棒的字体图标。我想旋转它。需要帮助。

import React from 'react'
import { View  } from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome5';

const InfoBox = () => {
    return (
          <View >
            <Icon name={'hand-holding-usd'} size={20}/>
          </View>

    )
}

export default InfoBox;
Run Code Online (Sandbox Code Playgroud)

stylesheet react-native react-native-android font-awesome-5

7
推荐指数
1
解决办法
1万
查看次数

React Native StatusBar:黑暗内容不适用于android

我正在尝试将标题的颜色和状态栏的图标更改为黑色。因此,根据 react-native status-bar 文档,我将其设置barStyle为dark-content但没有任何变化。

<StatusBar barStyle="dark-content" backgroundColor={'white'} />

statusbar react-native react-native-android

7
推荐指数
2
解决办法
3366
查看次数

android react-native在谷歌批准过程中避免“未声明后台位置访问”

好的,所以 Google 告诉我们“未声明后台位置访问权限”并且不让我们发布我们的应用程序。我们没有使用背景位置,所以我们试图完全消除它。

当然我的清单没有它:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-feature android:name="android.hardware.location.gps"/>

Run Code Online (Sandbox Code Playgroud)

我在任何地方都搜索过任何可以将 ACCESS_BACKGROUND_LOCATION 添加到我们的应用程序的内容,但一无所获。

使用银搜索器:

ag ACCESS_BACKGROUND_LOCATION .
Run Code Online (Sandbox Code Playgroud)

我已经检查了责备报告的线索,并对任何带有“背景”一词的内容进行了倒推,但无济于事:android/app/build/intermediates/manifest_merge_blame_file/myAppRelease/manifest-merger-blame-myapp-release-report 。文本

不过,我确实找到了一些额外的权限:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Run Code Online (Sandbox Code Playgroud)

但我在那里没有看到任何红旗..

我试过节点删除选项:

<manifest ...xmlns:tools="http://schemas.android.com/tools"...>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

但没什么。

我也运行了 aapt2

$ aapt2 d permissions android/app/build/outputs/apk/myapp/release/app-myapp-release.apk
package: com.myapp
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_COARSE_LOCATION'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW'
uses-permission: name='com.android.vending.BILLING'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.WAKE_LOCK'
Run Code Online (Sandbox Code Playgroud)

这并没有告诉我更多..

我还观看了谷歌发布的关于背景位置的整个 YouTube 视频,阅读了官方文档,并检查了每个堆栈溢出帖子 - 但他们只是推荐我已经采取的步骤。

这是一个很累的过程!我累极了。我最好的猜测是我们的依赖项是问题之一,但我没有很好的线索来确定它可能是哪一个。

真的很感激一些新鲜的眼睛..也许有人用下面的这些包之一遇到了这个问题,并且会像,就是这样!删除它!

否则,它会回到绝望的搜索和基于最少信息的蛮力重建。

  "dependencies": …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-permissions react-native react-native-android

7
推荐指数
1
解决办法
2145
查看次数