handleWepinLink method

void handleWepinLink(
  1. Uri linkUrl
)

Implementation

void handleWepinLink(Uri linkUrl) {
  String? idToken;
  if (kDebugMode) {
    print('handleWepinLink : $linkUrl');
  }

  String deepLinkScheme = 'wepin.${_wepinOptions.appId}://';
  if (!linkUrl.toString().startsWith(deepLinkScheme)) {
    if (kDebugMode) {
      print('Invalid DeepLink Scheme');
    }
    return;
  }

  if (Platform.isIOS) {
    // if (await supportsCloseForLaunchMode(LaunchMode.inAppBrowserView)) {
    //   closeInAppWebView();
    // }
    closeInAppWebView();
  }

  Map<String, String> param = linkUrl.queryParameters;
  idToken = param['token'];
  if (idToken == null || idToken.isEmpty) {
    // wepinWallet에서 widget으로 돌아오는 경우
    if (kDebugMode) {
      //print('token_is_null or empty');
    }
    return;
  }
  if (kDebugMode) {
    //print('received_token : $idToken');
  }

  // showDialog(
  //     context: _appContext,
  //     builder: (context) {
  //       _wepinFlutter = WepinFlutter(_wepinOptions,
  //           Uri.parse('?token=${idToken}'), _appContext.widget);
  //       return _wepinFlutter!;
  //     });

  NERequestHeader neRequestHeader = NERequestHeader();
  NERequestBody neRequestBody = NERequestBody(
      command: 'set_token', parameter: SetTokenParameter(idToken));

  _wepinFlutter!.sendNativeEvent(
      NERequest(header: neRequestHeader, body: neRequestBody));
}