为什么signInWithPopup() 不适用于 pywebview?

Geo*_*rge 7 python firebase firebase-authentication google-signin pywebview

我正在尝试使用 firebase 登录 google 并尝试通过 pywebview 加载页面。

from tkinter import *
import webview as webview
root = Tk()
win_width = root.winfo_screenwidth()               
win_height = root.winfo_screenheight()
root.geometry("%dx%d" % (win_width, win_height))
webview.create_window(title='My Window', url='http://localhost:81',confirm_close=True)
webview.start()
root.destroy()
Run Code Online (Sandbox Code Playgroud)

当使用浏览器打开时,它工作正常,但是当使用我的代码打开并单击登录时,它显示以下消息

无法与弹出窗口建立连接。它可能已被浏览器阻止。

图像

解决办法是什么?

Mic*_*nik 0

这是怎么回事?

正如错误消息所示,您与webview库(或实际上渲染器)一起使用的浏览器很可能不允许弹出窗口。

您提供的代码不会触发任何弹出窗口,但正如您在标签中提到的 Firebase 身份验证,我相信它会发生在这个阶段。

解决方案

如果确实在 Firebase 身份验证期间发生此问题,最简单的解决方案是使用 代替auth.signInWithRedirect()auth.signInWithPopup()有关更多信息,请参阅文档)。

如果您一般关心弹出窗口,您可以尝试更改渲染器设置甚至渲染器本身,但是,这会更麻烦。