한국어 한국어   Englilsh English

.

Skip to end of metadata
Go to start of metadata

하이브리드 앱에서 네이티브와 WebView의 html 환경과 값 전달이 필요 할 때가 있다.

예를들어 로그를 남길때 로그ID 값 같은 것은 네이티브에서도 필요하고

웹뷰에서도 해당 값을 공유해서 로그를 쌓을때 같은 key 값으로 로그를 쌓는 서버쪽에 전달을 해야 한다.

아래 방법은 javascript 를 통해서 accessToken 을 네이티브에서 web 쪽으로 전달하는 예이다.

1. myAppWebView 에서 test.html 호출

App #1
[self.myAppWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]isDirectory:NO]]];

2. myAppWebView 가 생성/로딩이 끝났을때 useAccessToken() javascript 함수에 accessToken 값을 전달.

App #2
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *accessToken = [FBSDKAccessToken currentAccessToken].tokenString;
    NSString *functionToCall = [NSString stringWithFormat:@"usesAccessToken('%@')", accessToken];
    [self.myAppWebView stringByEvaluatingJavaScriptFromString:functionToCall];
}


3. test.html 의 javascript 에서 accessToken 값을 받아서 팝업으로 띄움.

test.html
    <html>
      <head></head>
      <body>
          <script type="text/javascript">
            function usesAccessToken(access_token_string) {
             // use access token 
              alert(access_token_string);
            }
            </script>
      </body>
    </html>


출처 : https://stackoverflow.com/questions/30108265/use-facebook-ios-sdk-auth-token-in-webview


- 끝 -



  • No labels