今天,我在“协议激活”(自定义URI方案处理)如何在桌面和电话上分别用于部署的同一个UWP项目时遇到了非常奇怪的区别。在桌面上,您已成功激活您的应用。在手机上,它说你必须从商店安装适当的应用程序来处理你的自定义URI方案(事实上你之前已经在手机上安装了你的应用程序,甚至现在就运行它 - 为什么要搜索商店?)。
重要提示:如果您在浏览器窗口中输入该自定义URI,则两个硬件都可以。如果通过正确的HTTP 302重定向通过HTTP请求返回自定义URI,则会出现此问题。因此,完整的用例是“请求普通URL - >响应HTTP 302到自定义URI位置”
最后,我得出的结论是,与桌面浏览器相比,Edge的移动版在302重定向上做了不同的事情。使用XAML WebView和UnsupportedUriSchemeIdentified事件处理程序快速编写最简单的应用程序,我学到了两件事:
我的问题是:
答案 0 :(得分:0)
因此,问题是由服务器端逻辑引起的(在桌面浏览器或手机浏览器提供的User-Agent标头中进行了幼稚的子字符串搜索)。
后端人!从不,永远不要信任用户代理字符串!
Mozilla / 5.0(Windows Phone 10.0; Android 6.0.1; Microsoft; Lumia 950 双SIM卡)AppleWebKit / 537.36(KHTML,像Gecko)Chrome / 52.0.2743.116 Mobile Safari / 537.36 Edge / 15.15063