2019년 6월 1일 ~ 5일
📅 2019년 6월 1일
웹에서는 token을 받으면 local storage에 저장하는 것처럼, 모바일 에서는 AsyncStorage를 쓸 수 있다.
리액트 네이티브에서 import 해올 수 있는 AsyncStorage는 deprecated되었고, 이제 react-native-community/react-native-async-storage를 써야한다.
import AsyncStorage from "@react-native-community/async-storage";
local storage처럼 setItem
, getItem
등을 사용할 수 있는데, 각 API는 Promise를 반환한다.
key
, value
페어로 저장이 되며, key
와 value
는 string
형태여야 한다.
📅 2019년 6월 2일
axios
axios는 HTTP 통신을 할 수 있는 자바스크립트 라이브러리로, 브라우저와 node.js 플랫폼에서 모두 사용할 수 있다. Promise를 기반으로 async/await 문법을 사용, XHR request를 쉽게 할 수 있다. 무엇보다 JSON 데이터를 자동변환 해주기 때문에 개꿀 🍯
정규표현식
정규표현식(正規表現式, Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.
이메일주소 확인, 비밀번호 규칙 등에 활용될 수 있으며,
아래와 같이 쓸 수 있다.
let emailPattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
let emailIsValid = emailPattern.test(email); # boolean
📅 2019년 6월 5일
React Native WebView
google social 로그인 시 계정연결을 위해 Webview 를 씀
- userAgent를 설정해 주어야 함
import React, { Component } from "react";
import { SafeAreaView, Platform, View, WebView } from "react-native";
let userAgent =
"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/ 604.1.21 (KHTML, like Gecko) Version/ 12.0 Mobile/17A6278a Safari/602.1.26";
if (Platform.OS !== "ios") {
userAgent =
"Mozilla/5.0 (Linux; Android 8.0.0; TA-1053 Build/OPR1.170623.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3368.0 Mobile Safari/537.36";
}
export default class MyInlineWeb extends Component {
render() {
return (
<View>
<WebView
userAgent={userAgent}
originWhitelist={["*"]}
source={this.props.source}
/>
</View>
);
}
}
- 뿐만아니라, xcode의 AppDelegate.m에도 아래 내용을 추가해 주어야 함
NSString *userAgent = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:userAgent, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
참고자료
👩🏻💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻♀️
in the process of becoming the best version of myself