Как получить URL из браузера в реагировать на родной? - PullRequest
1 голос
/ 03 апреля 2019

Я совершенно новый, чтобы реагировать на нативные, и я хочу создать аутентификацию Instagram для моего приложения, для которого мне нужен токен доступа.Как указано в документации, я должен посетить эту ссылку https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token, и когда пользователь авторизует и аутентифицирует приложение, я буду перенаправлен на эту ссылку http://your -redirect-uri # access_token =TOKEN-TOKEN откуда я могу получить свой токен доступа.Но я не могу реализовать это, поскольку не знаю, как извлечь токен из URL-адреса в реакции-нативе, как только я перенаправлен на этот http://your -redirect-uri # access_token =ACCESS-TOKEN .

Я использую WebBrowser (Expo) для открытия ссылок в приложении.

PS: я использую CRNA cli для своего реактивного приложения-native-app

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вы можете получить токен доступа, используя 'https://localhost' в качестве URL перенаправления,

используйте свою ссылку в webView

, например:

   <WebView
                source={{
                  uri: "https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=https://localhost&response_type=token"
                }}
                onNavigationStateChange={state =>
                  this._onChangeNav(state)
                }
   />

И добавить метод,

_onLoadAddNewCardView(state) {

   console.warn("RES=" + state.url);// Your url with ACCESS TOKEN

   let responseString = state.url;
   responseString = responseString.replace("https://localhost/?", "");

   // Here you will get the ACCESS TOKEN
}
0 голосов
/ 03 апреля 2019

Из примера говорится:

    import InstagramLogin from 'react-native-instagram-login'
<View>
    <TouchableOpacity onPress={()=> this.refs.instagramLogin.show()}>
        <Text style={{color: 'white'}}>Login</Text>
    </TouchableOpacity>
    <InstagramLogin
        ref='instagramLogin'
        clientId='xxxxxxxxxx'
        scopes={['public_content', 'follower_list']}
        onLoginSuccess={(token) => this.setState({ token })}
        onLoginFailure={(data) => console.log(data)}
    />
</View>

Это говорит о том, что токен будет находиться в состоянии вашего приложения (либо onLoginSuccess / Failure). Получите доступ к токену оттуда.

...