“expo”: “~36.0.0”,
“react”: “~16.9.0”,
“react-native”: “https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz”,
안녕하세요. react native, expo 사용해서 native 코드 없이 개발중입니다.
카카오 SDK Javascript 버전을 이용해서 친구 목록 불러오기 기능을 개발하려고 하고 있습니다.
index.html 파일을 만들었고, WebView에서 참조하도록 했습니다.
Kakao.Auth 와 Kakao.Api 모두 작동하지 않아서 아래 코드를 이용해 디버깅을 했습니다. 맨 아래에 사용한 코드 전체를 첨부하겠습니다.
JSON.stringify(Kakao)
Javascript 앱 키를 사용하여 Kakao.init() 을 했을 떄와, 앱 키를 비워둔 채로 Kakao.init(’’) 을 했을 때 모두 결과가 다음과 같았습니다.
{
“VERSION”:“1.39.0”,
“Story”:{ },
“Auth”:{ },
“API”:{ },
“Link”:{ },
“Emoticon”:{ },
“Navi”:{ },
“PlusFriend”:{ },
“Channel”:{ },
“Wishlist”:{ }
}
domain 설정은 다음과 같았습니다.
http://localhost:8000
http://127.0.0.1:8000
http://127.0.0.1
http://127.0.0.1:19000
http://localhost:19000
아래는 index.html 파일과 그것을 참조하여 WebView를 만드는 WebViewExample.js 파일입니다.
index.html
head 내부는 다음과 같습니다.
<meta charset="utf-8" /> <title>Kakao SDK index</title> <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
body 내부는 다음과 같습니다.
<div id="divId">Kakao SDK index page</div> <script type="text/javascript"> Kakao.init("My App Key"); alert(JSON.stringify(Kakao)); alert(Kakao.isInitialized()); </script> <div>Kakao SDK index page</div>
WebViewExample.js
import * as React from “react”;
import { WebView } from “react-native-webview”;export default class WebViewSample extends React.Component {
render() {
const indexLocation = “…/kakao_sdk/index.html”;
return (
<WebView
nativeConfig={{ props: { webContentsDebuggingEnabled: true } }}
originWhitelist={["*"]}
source={require(indexLocation)}
style={{ flex: 1 }}
javaScriptEnabled={true}
allowFileAccess={true}
mixedContentMode=‘always’
/>
);
}
}
문제가 무엇일지, 해결 방법을 문의드립니다.