pichillilorenzo / flutter_inappwebview

A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window.
https://inappwebview.dev
Apache License 2.0
3.32k stars 1.64k forks source link

Login Via Truecaller not working in webview, but works in Chrome #1184

Open ycv005 opened 2 years ago

ycv005 commented 2 years ago

Environment

Technology Version
Flutter version 2.10.5
Plugin version flutter_inappwebview: ^5.4.3+7
Android version 12
iOS version NA
Xcode version NA

Device information:

Description

Expected behavior:

Current behavior:

Steps to reproduce

  1. This
  2. Than that
  3. Then

Images

Stacktrace/Logcat

github-actions[bot] commented 2 years ago

👋 @ycv005

NOTE: This comment is auto-generated.

Are you sure you have already searched for the same problem?

Some people open new issues but they didn't search for something similar or for the same issue. Please, search for it using the GitHub issue search box or on the official inappwebview.dev website, or, also, using Google, StackOverflow, etc. before posting a new one. You may already find an answer to your problem!

If this is really a new issue, then thank you for raising it. I will investigate it and get back to you as soon as possible. Please, make sure you have given me as much context as possible! Also, if you didn't already, post a code example that can replicate this issue.

In the meantime, you can already search for some possible solutions online! Because this plugin uses native WebView, you can search online for the same issue adding android WebView [MY ERROR HERE] or ios WKWebView [MY ERROR HERE] keywords.

Following these steps can save you, me, and other people a lot of time, thanks!

ycv005 commented 2 years ago

@pichillilorenzo Basically, Truecaller launch a intent- truecallersdk://truesdk/web_verify?requestNonce=0f6a5b72-365f-4a86-ac5b-d71581a75ef2&partnerKey=FOXvM3bc9658bc7f8420498b7337e61a995ca&partnerName=Some&lang=en&title=Sign%20in&skipOption=useAnotherNum

how to handle this, and make login successful, and return to exisitng web page.

manish-thakurani commented 10 months ago

we cannot always invoke truecaller SDK from webview, as the user may or may not have TrueCaller installed in app. One way which worked for me was to skip this TrueCaller verification invocation, on website which do it before loggin in the user. we can override shouldOverrideUrlLoading the and add following code to skip TrueCallerSDK URI

String url = request.getUrl().toString();
if (url.startsWith("truecallersdk://")) {
                   isTrueCallerSDKCalled = true;
                   return true;
                }