首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在react-native expo项目中返回RNPermissions null的react-native-permissions

在react-native expo项目中返回RNPermissions null的react-native-permissions
EN

Stack Overflow用户
提问于 2019-12-12 15:57:27
回答 2查看 9.6K关注 0票数 6

我是世博会的新手,我不知道这里有什么问题,我对安卓已经足够好了,我正试图在一个新创建的空白react-native Expo项目中使用react-native-qrcode-scanner。我没有接触到项目中的任何东西,只是创建了一个全新的项目,然后我收到一个错误,显示为RNPermissions is null。我认为传递有关我的android应用程序的详细信息是很有说服力的,有人能帮助我如何开始吗?我使用react-native-permissions是因为二维码扫描器的代码需要它,我卸载了依赖项中的所有东西,只留下了这些:

代码语言:javascript
复制
"dependencies": {
    "expo": "~36.0.0",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
    "react-native-permissions": "^2.0.2",
    "react-native-web": "~0.11.7"
}

所以在App.js中只有基本的欢迎使用react消息,如下所示:

代码语言:javascript
复制
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { check, PERMISSIONS, RESULTS } from 'react-native-permissions';

class App extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      <View style={styles.container}>
        <Text>Open up App.js to start working on your app!</Text>
      </View>  
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',     
  },
});
export default App;

这是app.json文件:

代码语言:javascript
复制
{
  "expo": {
    "name": "App1",
    "slug": "App1",
    "privacy": "public",
    "sdkVersion": "36.0.0",
    "platforms": [
      "ios",
      "android",
      "web"
    ],
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {  
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true
    }
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-12 16:32:41

这个react-native-qrcode-scanner包建议使用react原生摄像头,并且需要链接。如果你使用的是expo,你将无法链接,因为expo不允许链接库。因此,如果你计划使用相同的库,那么首先从expo中弹出以进行本机反应,然后尝试使用它,因为你无法访问链接库。

如果你想在expo中实现,那么expo有自己的条形码描述器,请在下面查看它。expo barcode scanner。它有一个漂亮的医生。一定要读一读。

希望能有所帮助。请不要有疑问

票数 5
EN

Stack Overflow用户

发布于 2019-12-12 16:13:37

根据您在App.js上共享的内容,您尚未使用react-native-permissions中的任何函数

您需要获得设备所有者的许可批准才能使用摄像头。一些您可能会遗漏的东西,您需要检查以下内容:

适用于Android

  1. AndroidManifest.xml -您是否具有所需的请求权限。You may refer to this.

代码语言:javascript
复制
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.CAMERA" />

  1. 确保您具有链接到

的库

对于iOS

  1. 您需要将以下内容追加到Info.plist

代码语言:javascript
复制
    <key>NSCameraUsageDescription</key>
    <string>Our app need your permission to use your camera phone</string>

  1. 确保在项目根目录(用于React Native <0.60)

)的iOS文件夹(适用于React Native >= 0.60)上安装有库链接的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59299992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档