`
yidongkaifa
  • 浏览: 4051722 次
文章分类
社区版块
存档分类
最新评论

iOS学习之iOS5.0以上使用新浪微博开放平台OAuth 续(及解决登录无效问题)

 
阅读更多

继上篇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;
}

运行效果:


这个状态差不多就可以了。


还有在调用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)

本文遵循“署名-非商业用途-保持一致”创作公用协议




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics