zoukankan      html  css  js  c++  java
  • iOS 学习

      准备工作---原文来自这个

    首先要在微信开放平台申请 AppID QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里

    如果你是 copy 在自建 group 里面,

    1.需要在 Build Phases - Link Binary With Libraries 里面 .a 文件,TencentOpenApi_IOS_Bundle.bundle、TencentOpenAPI.framework

    2.在 Copy Bundle Resources add .h 文件

    3.在 Bulid Settings - Library Search Paths "+" sdk 路径

    4.加入库和框架

    SystemConfiguration.framework

    libz.dylib

    libsqlite3.0.dylib

    CoreTelephony.framwork

    libc++.dylib

    如果 copy 在自带 group 里面,则不需要,已经自动配置好

    AppDelegate.h ,import "WXApi.h" 和 遵守协议

    5.Info 下面添加 URL Types

     

    6.添加白名单

    代码片段:

    #import <UIKit/UIKit.h>
    #import "WXApi.h"
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate,WXApiDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    @end

    AppDelegate.m

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 注册id
        [WXApi registerApp:WXappid];
        return YES;
    }
    
    //重写 handleOpenURL
    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
        return [WXApi handleOpenURL:url delegate:self] || [TencentOAuth HandleOpenURL:url];
    }

    NEW 一个分享的 View,包含背景图和四个分享按钮

    显示主要代码:

    #pragma mark -- 微信分享的是链接
    - (void)wxShare:(int)n
    {   //检测是否安装微信
        if (![WXApi isWXAppInstalled]) {
            NSLog(@"Not installe weixi");
            [self alert:@"Not installe weixi"];
        }else{
            SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc]init];
            sendReq.bText = NO; //不使用文本信息
            sendReq.scene = n;  //0 = 好友列表 1 = 朋友圈 2 = 收藏
            
            WXMediaMessage *urlMessage = [WXMediaMessage message];
            urlMessage.title = KLinkTitle;
            urlMessage.description = KLinkDescription;
            
            UIImage *image = [UIImage imageNamed:@"maliao"];
            //缩略图,压缩图片,不超过 32 KB
            NSData *thumbData = UIImageJPEGRepresentation(image, 0.25);
            [urlMessage setThumbData:thumbData];
            //分享实例
            WXWebpageObject *webObj = [WXWebpageObject object];
            webObj.webpageUrl = KLinkURL;
            
            urlMessage.mediaObject = webObj;
            sendReq.message = urlMessage;
            //发送分享
            [WXApi sendReq:sendReq];
        }
    }
    
    #pragma mark QQ 分享的是图片
    - (void)qqShare:(BOOL)flag
    {   //检测是否安装 QQ
        if (![TencentOAuth iphoneQQInstalled]) {
            NSLog(@"请移步 Appstore 去下载腾讯 QQ 客户端");
            [self alert:@"请移步 Appstore 去下载腾讯 QQ 客户端"];
        }else{
            
            _tencent = [[TencentOAuth alloc]initWithAppId:QQappid andDelegate:self];
            UIImage *image = [UIImage imageNamed:@"maliao"];
            //QQ 分享图片不超过 1M ,没有压缩的必要
            NSData *data = UIImagePNGRepresentation(image);
            QQApiImageObject *imgObj = [QQApiImageObject objectWithData:data
                                                       previewImageData:data
                                                                  title:KLinkTitle
                                                            description:KLinkDescription];
            
            SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:imgObj];
            //因为分享的是联系人和空间的结合体,下面的判断其实多此一举
            if (!flag){
                //分享好友
                QQApiSendResultCode code = [QQApiInterface sendReq:req];
                NSLog(@"%d",code);
            }else{
                //分享空间
                [QQApiInterface SendReqToQZone:req];
            }
        }
    }

    具体代码,见 github

    转载注明出处:http://www.cnblogs.com/asamu/p/5479537.html

     

  • 相关阅读:
    Laravel使用Eloquent ORM操作数据库
    Laravel查询构造器的使用方法整理
    [wordpress]后台自定义菜单字段和使用wordpress color picker
    Thinkphp kindeditor 内容转义
    WordPress 后台提示输入FTP信息
    [记录]gulp compass
    symonfy 项目根目录下没有 bin/console 文件的解决方法
    [gulp] gulp lint 忽略文件
    [转载]ubuntu Atheros Communications Device 1083 驱动
    SharpDevelop 编译时,任务失败,因为未找到“resgen.exe”的解决方法
  • 原文地址:https://www.cnblogs.com/asamu/p/5479537.html
Copyright © 2011-2022 走看看