Delphi - 制作Twebbrowser默认浏览器

时间:2015-04-04 02:19:53

标签: delphi internet-explorer indy10

我想做的事情似乎很简单,但我找不到任何参考。我只想制作我的Twebbrowser(或任何嵌入式浏览器或合适的组件 - 为了参数我只使用Twebbrowser作为我需要的任何组件的指示器 - 未知的未知数)默认值。情况是,当我尝试访问Dropbox时,它会弹出一个带有 userID / Password 的网页,然后会弹出一个带有 allow 按钮的网页。

我只是希望这些网页出现在我的Twebbrowser中,而不是显示用户默认浏览器的实例(即我的情况下为chrome)。当我解决这两个页面时,我只想将默认浏览器设置回原来的状态。看似简单,但我不知道如何实现这一点。回顾一下:

  1. 我尝试通过DLL调用访问dropbox
  2. 如果我的凭据是从上一个会话中保存的,那么系统就会进展
  3. 如果我的凭据未保存,则Dropbox会弹出登录网页(我想在用户默认浏览器中的Twebbrowser NOT 中)
  4. 我登录并使用dropbox弹出“允许访问权限”。页面(我希望在用户默认浏览器中的twebbrowser NOT 中再次使用)
  5. 当我登录并允许访问dropbox时,我想重新启用用户的默认浏览器
  6. 关键是我没有向Twebbrowser组件提供URL,系统生成的活动完全超出了我的控制范围,并且基于是否满足特定条件(我无法知道这些是否已经满足,例如,可能有会话ID和密钥,但这些可能已过期)。我在网上搜索过,找不到任何可能的东西。我不是专家,但我会想到像......这样的属性...这将是有用的。这可能是非常简单的事情,但我无法弄清楚。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  • 将您的应用设为默认浏览器
  • 修改Dropbox客户端,使其使用您的应用程序而不是默认浏览器

第一个生命周期很短,因为浏览器可以检查它们是否仍然是默认浏览器。如果用户启动其常规浏览器,则会显示一条消息,表明它们不再是默认浏览器,并要求用户更改此权限。然后你的申请将不再是默认申请。

第二个显然是一个非常糟糕的主意,因为这样做,您的应用程序将不得不修改Dropbox客户端应用程序。

请注意,相关Dropbox documentation中的第一句话是:

  

永远不要处理用户登录名和密码信息。

核心API最佳做法,第一部分:用户授权


添加:请注意Dropbox authentication使用默认浏览器的原因是:浏览器不仅显示登录表单,还允许用户查看TLS(传输层安全性,也称为SSL)证书。 TWebbbrowser是否可以直接访问此信息,以便用户可以确保您的应用程序不会捕获和滥用输入的凭据?