继上篇 iOS学习之iOS5.0以上 使用新浪微博开放平台OAuth
过后,新浪微博授权弹出的网页又有调整,中间还有过瘫痪情况。如果按上篇做出来的授权页面就成这样了:
第一:网页页面变大了,
第二:没有了取消按钮。根据这个情况在sina weibo SDK里做了写调整
调整:增加一个关闭按钮,弹出窗口大小。
在WBAuthorizeWebView.m文件的方法:bounceOutAnimationStopped里添加按钮:
UIButton *closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[closeButton setFrame:CGRectMake(280, 430, 60, 60)];
[closeButton setImageEdgeInsets:UIEdgeInsetsMake(3, 0, 0, 0)];
[closeButton setImage:[UIImage imageNamed:@"close"] forState:UIControlStateNormal];
[closeButton addTarget:self action:@selector(hideAndCleanUp) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:closeButton];
close.png图片sdk里自带就有。hideAndCleanUp方法就是把窗口移除。hideAndCleanUp方法原来就有。运行效果:
看右下角有个关闭按钮,为什么放在右下角呢,因为右上角有个注册按钮,容易被点到。一会把网页窗口最大化了就能看到了。
扩大窗口
在WBAuthorizeWebView.m文件的方法- (void)sizeToFitOrientation:(UIInterfaceOrientation)orientation 修改如下:
上面的尺寸是横屏的时候的,我修改了竖屏时的窗口的大小。
- (void)sizeToFitOrientation:(UIInterfaceOrientation)orientation
{
[self setTransform:CGAffineTransformIdentity];
if (UIInterfaceOrientationIsLandscape(orientation))
{
[self setFrame:CGRectMake(0, 0, 480, 320)];
[panelView setFrame:CGRectMake(10, 30, 460, 280)];
[containerView setFrame:CGRectMake(10, 10, 440, 260)];
[webView setFrame:CGRectMake(0, 0, 440, 260)];
[indicatorView setCenter:CGPointMake(240, 160)];
}
else
{
[self setFrame:CGRectMake(0, 5, 320, 470)];
[panelView setFrame:CGRectMake(0, 5, 320, 470)];
[containerView setFrame:CGRectMake(0, 5, 320, 460)];
[webView setFrame:CGRectMake(0, 0, 320, 460)];
[indicatorView setCenter:CGPointMake(160, 240)];
}
[self setCenter:CGPointMake(160, 240)];
[self setTransform:[self transformForOrientation:orientation]];
previousOrientation = orientation;
}
运行效果:
![](https://img-my.csdn.net/uploads/201212/25/1356443779_8137.png)
这个状态差不多就可以了。
还有在调用WeiBoEngine 的Logout 登出无效的情况。修改如下:
在WBAuthorize.m文件,把startAuthorize函数修改如下:
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:appKey, @"client_id",
@"code", @"response_type",
redirectURI, @"redirect_uri",
@"mobile", @"display",
@"true",@"forcelogin", nil];
就是在 params里添加@”true”,@”forcelogin”。
以上是使用新浪微博sdk开发遇到的问题和解决的一些方法。
修改过的项目代码:http://download.csdn.net/detail/totogo2010/4928029
容芳志 (http://blog.csdn.net/totogo2010)
本文遵循“署名-非商业用途-保持一致”创作公用协议