Xamarin Mac 应用在尝试允许 Dropbox 时没有反应。

8
我正在开发一款Xamarin Mac应用程序,需要与Dropbox进行数据同步。
我创建了一个WebView,导航到一个URL,在那里用户被提示输入其用户名和密码。点击OK并成功登录后,将出现一个新屏幕,我可以在其中授予或拒绝应用程序访问Apps > AppName中的文件夹。
无论点击取消或允许都没有任何反应。但是,如果我点击左上角的Dropbox图标,就能正常导航到我的仪表板。
我认为这可能是一个Javascript问题或类似的问题,但我已经更改了我能想到的所有属性,但仍然卡在同一页上。
我需要设置什么来继续前进?

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Greg
我把这个任务搁置了一段时间,因为我还有其他事情要做,但现在我又回到这个任务上,但没有取得任何进展。你能解释一下你所说的“我建议跳转到正常的系统浏览器”是什么意思吗?我该如何在我的应用程序之外捕获系统浏览器和Dropbox之间的交互呢? - Ivan Crojach Karačić
交叉链接以供参考:https://www.dropboxforum.com/hc/communities/public/questions/202340919-Cocoa-WebView-not-reacting-to-Allow-button-click- - Greg
我的意思是建议将用户发送到他们自己的浏览器(例如Chrome,Firefox,IE,Safari等)中访问/authorize URL。这样,用户更有可能使用受支持的浏览器(根据https://www.dropbox.com/help/3)。一旦用户授权您的应用程序,您可以使用OAuth回调来通知/返回您的应用程序。这就是OAuth 1中的oauth_callback参数或OAuth 2中的redirect_uri参数。 - Greg
1个回答

4
我已经找到了解决我的问题的方法,这个问题有点奇怪(在我看来),但也许它是OSX上的默认方式。我订阅了webView控件提供的所有事件,我发现了这个“小贴士”。一旦用户点击“允许”,就会触发CancelClientRedirect事件,巧合的是,我发现如果你查看...
YourWebViewControl.MainFrameUrl

您可以查看应该被调用的回调URL。
它可能是http://yoururl.com/oauth=someRandomStringhttp://yoururl.com/not_approved=true
基于这个URL,您可以知道发生了什么事情(即应用程序是否被授权),然后根据需要做出相应的反应。
希望这能帮助到某些人!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接