Android 启动由 webview 检索的意图(将字符串转换为意图)

Android launching intent retrieved by webview (convert string to intent)

我正在构建一个应用内浏览器,用于处理与外部提供商(例如 Microsoft 登录)的 firebase 身份验证。

我的主页上有一个调用 auth.startActivityForSignInWithProvider(this, provider).addOnSuccessListener{} 的按钮,它会启动带有网络视图的 activity。

问题是,一旦我完成与提供商的登录,网络视图就会收到一个意图 url(这是一个字符串,如下所示)。但是 webview 无法加载,我得到网页不可用 ERR_UNKNOWN_URL_SCHEME 错误。

如何将此字符串解析为 intent 以便启动它?

intent://firebase.auth/#Intent;scheme=genericidp;package=uk.co.***.***;S.authType=signInWithRedirect;S.eventId=bb96c23e7d-83ed-4b2f4-a738c-8af24f53daac4a;S.link=https%3A%2F%2Fmyfirstapp.firebaseapp.com%2F__%2Fauth%2Fhandler%3Fcode%3D0.AYIAvV-YJWoeZ6UOoRJEOjketivqfgizchdL5MitfLanIqQUbaCAAA.AQABAAIAAAD--DLA3VOs37Qrdd3gJg7Wevrer7Hj2PDEVXa5M0c_i8Fmje0dCOSg-e2xcTuMO2u3tm4ylmtm1tQ5aUqpwvjYuQZckOik3baj4ag9wWloW503BiFxxHCYOy4YhB9x5DQgPJvYx2AQutoy0PVzo9C0HiiX2CjLTfVARrRh5S-IiQ_I7lZrkVtLMxl7LKnw6gGsMV78V-F9odBnYOSNOXDuZQfbpqbIFFDg7Bi1DdbF98SIpSZDtm_uOS5b-LrZAdbgopwHs2g9mGZB4txTSTuQlXYDS-KaKaGUS5aIPdO2oFF32nikBH2FRj4ClOqNmuoVsBK79y4iFSYBA4y0L2gkC3221wxDJMIbt5CQ82NoqtOg6LxEcznIfO9aGxDdY51FpNDlDUmffkz-6RrZa96fcF_5W6KLx3QSjAB044Wg73xmnx4CGp2iD2QQA6rP46v6VcwvA4kv5bdMUxoR9r6awlkY4wL0Dv8pe_85yX-7XT3vD2XtkC0I14_kKXB6TIAYrdMvMcR46ln9XTUAJA6oeZ63_iqdXeTl-HA51NwrzSfC5-5apTEWa6mnGtDnK2J45Fkn5WTvSN9kRYxEvrmm-GCM01J_iLtIerPd4GpcVmrZf-lAnUjqTM_h3CTaOf6EP52G7NdNa7-tYQReDy2hrJT2M37iUPaqcSZt2xmwX8zcgfUF5jDXyj3VltheP_cwiAA%26state%3DAMbdmDl8cIpde-NI1OK041xo63TwUfTRG-l6ojKgdKCrrd_uVaM0fO1H53zxbRYLig7qpwRXB6YyKzx5uLjR59UHkH1WKKL0MGtn4m-aU0YpZECef84BTh35JhvPoVikx0cJZdIZtgZcnE-cgh8WmGaT58cWPgmJvUznhP3H2exybOdT49CniTDko2-1uzL4zjibTqD223s54Ij3BX-Cbpzw_A6WS-PDGUhyKPtm7QzKs3oKOR7dZ9xA97lv5ESe8Lpk2hh9weiyfZ99FQpaUYlEyROIFWq79p_prE_8Kp2kJEr1p9zXox4QUS874-_WOmZDizJxKXFdbV0TxJbrKGfqFdXCtHUDmEMRgEugsyxvQ2NRCfeJDwcMbWhKFdQeH36wSs1zHZb14uQ3V5eH1MwEtY%26session_state%3De6521ed7-c1ed-4459-bb7e-e97da47be881;B.encryptionEnabled=false;S.browser_fallback_url=https%3A%2F%2Fmyfristapp.firebaseapp.com%2F__%2Fauth%2Fhandler;end;

只需要像这样解析 intent uri

val intent = Intent.parseUri(urlStr, Intent.URI_INTENT_SCHEME)
startActivity(intent)