npm package: @hanhokim/capacitor-naver-login
Description: ...
Author: Hanho Kim
Latest version: 7.0.0

# @hanhokim/capacitor-naver-login

## Android 설정
### capacitor.config.ts 에 아래 내용을 추가
```ts
...
    plugins: {
        CapacitorNaverLogin: {
                client_id: "YOUR_NAVER_CLIENT_ID", 
                client_secret: "YOUR_NAVER_CLIENT_SECRET",
                app_name: "YOUR_APP_NAME",
                url_scheme: "YOUR_URL_SCHEME" // iOS 에서 이용
        }
    }
...    
```

### 체크포인트
- Dependency 설치가 필수이므로 `npx cap open android` 이후 gradle sync 필요


## iOS 설정
### capacitor.config.ts 에 아래 내용을 추가
```ts
...
    plugins: {
        CapacitorNaverLogin: {
                client_id: "YOUR_NAVER_CLIENT_ID", 
                client_secret: "YOUR_NAVER_CLIENT_SECRET",
                app_name: "YOUR_APP_NAME",
                url_scheme: "YOUR_URL_SCHEME"
        }
    }
...    
```
### info.plist 에 아래 내용을 추가
```xml
<key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      	<string>{콜백 URL Scheme = YOUR_URL_SCHEME 과 동일해야함}</string>
      </array>
    </dict>
  </array>
```

### 체크포인트
- Apple M1/M2 chip 컴퓨터에서는 ARM64 이슈로 인해 시뮬레이터 환경에서 빌드가 되지 않는 이슈가 있다
  - 이는 Naver의 새로운 SDK(https://github.com/naver/naveridlogin-sdk-ios-swift)가 dependency로 반영되어야하나, 아직 해당 SDK가 cocoapods에 정식으로 등록되어 있지 않아 work around 로 dependency를 설치해야해서, 예전 버전 그대로 내버려둔 상태다

## Install

```bash
npm install @hanhokim/capacitor-naver-login
npx cap sync
```

## API

<docgen-index>

* [`echo(...)`](#echo)
* [`initSDK()`](#initsdk)
* [`prompt(...)`](#prompt)
* [`addListener('callback', ...)`](#addlistenercallback-)
* [Interfaces](#interfaces)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### echo(...)

```typescript
echo(options: { value: string; }) => Promise<{ value: string; }>
```

| Param         | Type                            |
| ------------- | ------------------------------- |
| **`options`** | <code>{ value: string; }</code> |

**Returns:** <code>Promise&lt;{ value: string; }&gt;</code>

--------------------


### initSDK()

```typescript
initSDK() => Promise<void>
```

--------------------


### prompt(...)

```typescript
prompt(options?: PromptOptions | undefined) => Promise<void>
```

| Param         | Type                                                    |
| ------------- | ------------------------------------------------------- |
| **`options`** | <code><a href="#promptoptions">PromptOptions</a></code> |

--------------------


### addListener('callback', ...)

```typescript
addListener(eventName: 'callback', listenerFunc: (data: CallbackData) => void) => Promise<PluginListenerHandle> & PluginListenerHandle
```

| Param              | Type                                                                     |
| ------------------ | ------------------------------------------------------------------------ |
| **`eventName`**    | <code>'callback'</code>                                                  |
| **`listenerFunc`** | <code>(data: <a href="#callbackdata">CallbackData</a>) =&gt; void</code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt; & <a href="#pluginlistenerhandle">PluginListenerHandle</a></code>

--------------------


### Interfaces


#### PromptOptions

| Prop        | Type             |
| ----------- | ---------------- |
| **`extra`** | <code>any</code> |


#### PluginListenerHandle

| Prop         | Type                                      |
| ------------ | ----------------------------------------- |
| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |


#### CallbackData

| Prop               | Type                 |
| ------------------ | -------------------- |
| **`success`**      | <code>boolean</code> |
| **`error`**        | <code>string</code>  |
| **`access_token`** | <code>string</code>  |
| **`token_type`**   | <code>string</code>  |

</docgen-api>