我有一个简单的iOS应用程序,它只显示一个UIWebView需要登录的特定网站.如果我运行我的应用程序并尝试登录该站点只需重新显示登录页面(没有错误消息).如果我使用Safari,我可以登录同一个网站.我的错在哪里UIWebView?如果重要,该网站使用SSL/https.
原来问题是这样的:使用iPhone UIWebView时的Asp.Net Forms身份验证
(UIWebView发送一个奇怪的用户代理标头,ASP.NET无法识别,所以它认为它无法处理cookie.这显然已经在ASP.NET 4.5中得到修复,甚至在早期版本中你可以在服务器上修复它你有权访问ASP.NET站点)
答案就在这里:在UIWebView中更改用户代理(iPhone SDK)
链接到:http://www.mphweb.com/en/blog/easily-set-user-agent-uiwebview
关键部分是将此代码放入您的应用启动代码中:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *dictionary = [NSDictionary
dictionaryWithObjectsAndKeys:
@"Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
@"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
}
Run Code Online (Sandbox Code Playgroud)
这会更改用户代理.有很多其他方法可以做到这一点,其中一些非常复杂(其中一种被称为"混合"),其中大多数都不起作用.
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |