当我尝试在 Dropbox 中允许时,Xamarin Mac 应用程序没有反应

Xamarin Mac application doesn't react when I try to allow it in Dropbox

我正在开发 Xamarin Mac 应用程序,我需要与 Dropbox 进行一些数据同步。

我创建了一个 WebView,它导航到 URL,提示用户输入用户名和密码。点击“确定”并成功登录后,我会看到一个新屏幕,我可以在其中授予或拒绝应用程序访问它在 Dropbox 中的 Apps > AppName 中的文件夹。

无论点击取消还是允许都没有任何反应。但是,如果我单击左上角的 Dropbox 图标,我将正常导航到我的仪表板。

我认为这可能是一个 Javascript 问题或类似的问题,但我已经更改了我能想到的所有属性,但我仍然停留在同一页面上。

我需要设置什么才能继续?

我找到了我的问题的解决方案,这是一个很奇怪的问题 (IMO),但也许它是 OSX 上的默认方式。

我订阅了 webView 控件必须提供的所有事件,我发现了这个 "nugget"。

一旦用户点击 "Allow",就会引发 CancelClientRedirect 事件,我偶然发现如果您查看

YourWebViewControl.MainFrameUrl

您可以看到应该调用哪个回调 URL。

它将是 http://yoururl.com/oauth=someRandomStringhttp://yoururl.com/not_approved=true

基于这个 URL 然后你可以知道发生了什么(即应用程序(未)授权)然后做任何你想做的回应。

希望这对某人有所帮助!