我目前正在开发一个既有移动应用又有网站的项目。可以在网站(适用于桌面用户)或应用程序上执行一项任务。现在,该站点请求的功能如下:
我已经实现了逻辑来判断用户是在桌面设备还是移动设备上(大多数情况下,至少是这样);但是,我发现有些用户可能没有安装应用程序,或者桌面设备将来可能被错误地识别为移动设备。如果重定向未安装应用程序的计算机,则会遇到一些错误或about:空白页面。所以,我的问题是,有没有办法判断一个针对移动应用的Response.Redirect是否会成功?
到目前为止,我已经调查了HttpWebRequest / HttpWebResponse选项,尝试根据重定向之前请求的页面响应来确定成功或失败,但这似乎不是一个有效的选项,因为链接到应用程序的URL不会提供要测试的HttpWebRequest的有效URI。任何帮助或建议将不胜感激。谢谢!
为了澄清,重定向看起来像这样:
Response.Redirect("opencustomapp://SomePage?Parameter1=bar&Parameter2=foo");
预期的结果不是打开网页,而是与已安装在用户手机上的已映射到此网址的应用进行互动。
编辑:我已经接受了答案,似乎不可能做我要求的事情,但是如果其他人有这个问题,我想附上一些有用的链接来解决有关how to use a cookie to determine if the app is installed和{的其他问题{3}}。对于我自己的代码,我可能会使用用户代理检查和setTimeout()函数的组合,因为这可以使用ClientScript.RegisterStartupScript从代码隐藏实现,而无需对现有应用程序进行任何更改。答案 0 :(得分:2)
不,没有办法告诉服务器重定向是否成功。这是因为重定向从服务器发送回客户端并在客户端执行。您可以做的最好的事情是使用移动应用程序为设备上的网站设置cookie,然后在请求的服务器端检查该cookie ...如果存在,则重定向。如果他们删除了应用程序(如果可能,不熟悉移动应用程序),请小心清除cookie,否则重定向将失败。