如何在反应原生项目上导入权限模块?
问题描述:
我是新的反应本地和typescript.I想创建权限模块为我的反应本地的项目,我分隔在下面Yonah's project两个链接和Facebook's permissions project如何在反应原生项目上导入权限模块?
Additionaly
NPM安装,NPM启动,纱运行构建 - 观察和反应 - 本地运行 - 安卓
命令运行顺利,但权限模块不使用它,我不提出这个模块添加我的项目。
我在下面尝试链接;
const permission = require('react-native-permissions')
import React from 'react'
import {
StyleSheet,
TouchableHighlight,
Text,
View,
Alert,
AppState,
Platform,
PermissionsAndroid,
} from 'react-native'
interface Props {
names: string[]
}
interface PermissionsState {
status: PermissionStatus
}
type PermissionStatus = 'granted' | 'denied' | 'never_ask_again' | ''
export class permissions extends React.Component<Props, PermissionsState>
{
constructor(props: Props, context: any)
// tslint:disable-next-line:brace-style
{
super(props, context)
this.state = {
status: '',
}
}
public render()
// tslint:disable-next-line:brace-style
{
return (<View> a </View>)
}
}
async function requestCameraPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.CAMERA,
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
// console.log("kamerayı kullanabilirsiniz")
} else {
// console.log('kamerayı kullanamazsınız')
}
} catch (err) {
// console.warn(err)
}
}
export default permission
答
requestCameraPermission函数未被调用。你可以尝试调用函数
constructor(props: Props, context: any)
// tslint:disable-next-line:brace-style
{
super(props, context)
this.requestCameraPermission= this.requestCameraPermission.bind(this);
this.state = {
status: '',
}
}
componentWillMount() {
this.requestCameraPermission();
.....
}
的多个请求看到这个例子
export async function requestForPermission() {
try{
const granted = await PermissionsAndroid.requestMultiple(
[
PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
],
)
........
} catch (err) {
console.warn(err)
}
}
@ ++
componentWillMount得到一个错误,这是[TS]找不到名称 'componentWillMount'。 任何 –
和我需要这种方法,构造函数是相同的行为,只要我知道 –
我编辑我的示例! – TrinitA