我正在开发一个Xamarin Mac应用程序,我需要与Dropbox进行一些数据同步。
我创建了一个WebView,导航到一个URL,提示用户输入用户名和密码。点击确定并成功登录后,我会看到一个新屏幕,我可以在其中授予或拒绝应用程序访问应用程序>中的文件夹> Dropbox中的AppName。
无论是击中取消还是允许没有任何反应。但是,如果我点击左上方的Dropbox图标,我会正常导航到我的仪表板。
我认为这可能是一个Javascript问题或类似的东西,但我已经改变了我能想到的所有属性,但我仍然停留在同一页面上。
我需要设定什么才能继续前进?
答案 0 :(得分:5)
我找到了我的问题的解决方案,这是一个非常奇怪的解决方案(IMO),但也许它是OSX上的默认方式。
我订阅了webView控件提供的所有活动,我发现了这个" nugget"。
用户点击"允许" CancelClientRedirect
事件被提出,我偶然发现如果你看看
YourWebViewControl.MainFrameUrl
您可以看到应该调用哪个回调网址。
它可以是http://yoururl.com/oauth=someRandomString
或http://yoururl.com/not_approved=true
。
根据此URL,您可以知道发生了什么(即app(未)授权),然后根据需要做任何您想做的事。
希望这可以帮助别人!