4.1.0 • Published 10 months ago

@xmartlabs/react-native-line v4.1.0

Weekly downloads
82
License
MIT
Repository
github
Last release
10 months ago

React Native Line

npm version PRs welcome

Line SDK wrapper for React Native 🚀

Requirements

  • Android minSdkVersion needs to be at least version 24.
  • iOS deploymentTarget needs to be at least version 15.1.
  • LINE developer account with a channel created.

Installation

With Expo

  1. Install the JavaScript side with:

    npx expo install @xmartlabs/react-native-line
  2. Add the plugin expo-build-properties to your app.json:

    "plugins": [
      [
        "expo-build-properties",
        {
          "ios": {
            "useFrameworks": "static" // This is required
          }
        }
      ],
      "@xmartlabs/react-native-line"
    ]

With react-native-cli

  1. Install library:

    npm install @xmartlabs/react-native-line
    
    # --- or ---
    
    yarn add @xmartlabs/react-native-line
  2. Link native code:

    cd ios && pod install
  3. Change your AppDelegate.m to match the following:

    #import "RNLine-Swift.h"
    
    ...
    
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
    {
      return [LineLogin application:application open:url options:options];
    }
  4. Insert the following snippet in your Info.plist to match the LINE documentation:

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
            </array>
        </dict>
    </array>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>lineauth2</string>
    </array>

Usage

  1. Import the LineLogin module:

    import LineLogin from '@xmartlabs/react-native-line'
  2. Initialize the module with the setup method:

    useEffect(() => {
      LineLogin.setup({ channelId: 'YOUR_CHANNEL_ID' })
    }, [])
  3. Login with the login method:

    LineLogin.login()

API

FunctionDescription
login(args?: LoginArguments): Promise<LoginResult>Starts the login flow of Line's SDK (Opens the apps if it's installed and defaults to the browser otherwise). It accepts the same argumements as the LineSDK, in an object { key: value }, defaults the same way as LineSDK too.
getCurrentAccessToken(): Promise<AccessToken>Returns the current access token for the currently logged in user.
getProfile(): Promise<UserProfile>Returns the profile of the currently logged in user.
logout(): Promise<void>Logs out the currently logged in user.
refreshToken(): Promise<AccessToken>Refreshes the access token and returns it.
verifyAccessToken(): Promise<AccessTokenVerifyResult>Verifies the access token and returns it.
getBotFriendshipStatus(): Promise<BotFriendshipStatus>Gets bot friendship status if configured.

Example

If you want to see @xmartlabs/react-native-line in action, just move into the example folder and run npm install and then npm run ios/npm run android. By seeing its source code, you will have a better understanding of the library usage.

License

@xmartlabs/react-native-line is available under the MIT license. See the LICENCE file for more info.

3.1.0

11 months ago

4.1.0

10 months ago

4.0.0

11 months ago

3.0.0

11 months ago

2.2.1

1 year ago

2.2.0

3 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago