inflearn logo
강의

講義

知識共有

iOS/Androidアプリ開発のための本番 React Native - Basic

연락처 접근하기에서

解決済みの質問

595

hwd3527

投稿した質問数 8

0

윈도우 os 환경에서 작업하고 있습니다.

안드로이드에서 연락처를 못 불러 오는것 같습니다.

제 소스는

  async requestContactPermission(){
    if(Platform.OS === 'ios') {
      console.warn('ios')
      return true
    } else {
      console.warn('Android')
      
      const granted = await PermissionsAndroid.requestMultiple([
        PermissionsAndroid.PERMISSIONS.WRITE_CONTACTS,
        PermissionsAndroid.PERMISSIONS.READ_CONTACTS
      ]);
      

      if(
        granted['android.permission.READ_CONTACTS'=== PermissionsAndroid.RESULTS.GRANTED &&
        granted['android.permission.WRITE_CONTACTS'=== PermissionsAndroid.RESULTS.GRANTED
      ) {
        return true        
      } else {
        return false
      }
    }
  }

  getContacts = () => {
    this.requestContactPermission()
    .then((didGetPermission)=>{
      if(didGetPermission){
        Contacts.getAll((errcontacts) => {
          if(err){
            throw err;
          }
          console.warn(contacts)
        })
      } else {
        alert('no permission')
      }
    })
 }

그리고 에러는

WARN  Possible Unhandled Promise Rejection (id: 0):

Error: Exception in HostFunction: Malformed calls from JS: field sizes are different.

[[31,34],[4,0],[[10,2000,1603256350959,false]],67]

[native code]

enqueueNativeCall@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2589:43

fn@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2161:42

createTimer@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30885:38

setTimeout@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30693:18

_87@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27319:30

reject@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27196:18

doResolve@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27237:13

Promise@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27084:14

fn@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2134:27

http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:96716:48

tryCallOne@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27052:16

http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27153:27

_callTimer@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30607:17

_callImmediatesPass@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30643:19

callImmediates@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30862:33

callImmediates@[native code]

__callImmediates@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2647:35

http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2424:34

__guard@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2630:15

flushedQueue@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2423:21

flushedQueue@[native code]

invokeCallbackAndReturnFlushedQueue@[native code]

이렇게 뜨는데요. 

뭐가 문제인지 답변 부탁드립니다.

"react""16.9.0",
"react-native""0.61.5",
"react-native-contacts""^6.0.2",

es6 react-native react

回答 2

3

hwd3527

react-native-contacts 버전 5.X 대로 낮춰서 하니까 됩니다.~~

0

pcsnms0208

저도 같은 에러가 발생하였는데요. 6.X 버전 사용중일 때

if(didGetPermission) {
            Contacts.getAll().then((contacts=> {
                console.log(contacts);
            })
            .catch((e=> {}  )
        }else {
            alert('no permission');
       }

이렇게 .then 으로 받으면 정상동작 합니다.

강의 자료 소스코드는 없나요?

0

318

1

RN 자동완성 기능 질문

0

306

1

환경변수 및 SOURCE관련 질문

0

285

1

글로벌로 설치한다는 게 무슨 말인가요? (-g)

0

310

1

VIsual studio code 에서 react-native run-android 실행시 오류

0

838

2

리액트 네이티브에서 안드로이드 실행

0

556

1

vscode

0

402

2

안드로이드 에뮬레이터 에러...

0

961

1

웹뷰앱 만드는 자세한 방법이 궁금합니다.

0

421

0

App.js 화면 수정 시 안드로이드 emulator 오류

0

338

0

2

0

229

1

ios 구동했을 때 Welcome to React가 아니라 애플

0

469

1

1

0

201

0

진행중 막혀서 질문드립니다

0

373

0

drawer 파트

0

281

0

node.js 설치 오류

0

432

0

vs code 터미널에서의 command not found

0

1555

1

node js 10.15.1 설치가 안됩니다

0

302

0

Unable to boot device in current state: Booted 오류 발생하는경우

1

3181

0

adb 커맨드

1

524

1

Slider만 설치하면 애러가 납니다.

0

306

1

bounces 와 버튼 backgroundColor은 안드로이드에서 적용이 안되는건가요?

0

216

0

오류확인 부탁드립니다.

0

306

0

안드로이드 시뮬 작동 중 오류가 납니다.

0

232

0