zoukankan      html  css  js  c++  java
  • iOS分享到微信教程

    1.在微信开放平台申请账号并创建移动应用

    要分享内容到微信,必须得在 微信公众平台 注册一个帐号并且创建一个移动应用。

    创建了移动应用还需要审核通过才可以,这一过程大概需要2-3天。

    等不及马上想尝试?别着急,继续看下去,稍后我会讲如何在没有申请的情况下实现我们的功能。

    2. 项目集成微信SDK

    2.1 下载微信iOS SDK

    前往 微信公众平台-资源中心 下载微信iOS SDK。

    2.2 创建项目,加入SDK

    打开XCode,创建一个Single View Application,命名为WechatShareDemo。我们这个教程接下来就在这个项目的基础上进行。

    将2.1下载好的SDK压缩包解压后你可以看到以下文件:

    其中的README.txt你有时间可以看看。

    其他的.a、.h文件是我们需要的,直接导入到我们创建的WechatShareDemo中来。

    ok,此时我们已经有了一个导入了微信SDK的项目了,接下来我们需要配置一下!

    3 配置SDK环境

    3.1 导入需要的动态库和框架

    在工程Build Phases -> Link Binary With Libraries 链接以下动态库和框架文件:

    1.SystemConfiguration.framework

    2.CoreTelephony.framework

    3.Security.framework

    4.CFNetwork.framework

    5.libsqlite3.0.tbd

    6.libz.1.2.8.tbd

    7.libc++.tbd

    3.2 设置Other Linker Flags为"-Objc -all_load"

    3.3 设置URL scheme

    为了跳转至微信后还能跳回我们的app,我们必须将我们的appID添加为URL scheme。

    4. 编写分享代码

    到目前为止,我们导入了微信的SDK,配置了开发环境。试着运行一下吧!如果没有报错,就可以进行下一步啦!有报错可以在评论区评论。

    4.1 获取appID

    在我们编写代码之前,还有一个东西需要准备的,那就是appID。

    什么是appID呢?appID是微信用来标识你的应用的唯一ID,注意与苹果的app id没有任何关系。

    如果你已经创建了移动应用并且审核通过了的话,点击应用的查看按钮进入应用详情可以看到如下图:红框里面的就是appID,这个东西待会有用。

    如果你没有appID呢?你可以先用这个:

    wxd930ea5d5a258f4f // 微信SDK demo里的appID

    这个appID是微信自己的demo里面的appID,用来测试很方便。

    接下来的代码里都用这个appID。

    4.2 在应用里注册你的appID

    在AppDelegate.m文件中,引入WXApi.h

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        [WXApi registerApp:@"wxd930ea5d5a258f4f"];//注册appID
        return YES;
    }

    4.3 分享一段文本到微信

    好了!该开始写分享的代码了,在Main.storyboard的viewController里放置一个按钮,在viewController.m文件里引入微信的两个头文件:

    #import "WXApi.h"
    #import "WXApiObject.h"

    在按钮的响应事件里这样写:

    - (IBAction)shareButtonClick:(id)sender {
        SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
        req.bText = YES;           // 指定为发送文本
        req.text = @"hello world"; // 要发送的文本
        req.scene = WXSceneSession;// 指定发送到会话
        [WXApi sendReq:req];
    }

    运行一下,一切正常的话,你现在应该可以分享文本到微信好友了!

    注意req.scene是指定你要分享到哪个场景,在上面的代码里是分享到会话(聊天界面)里,你还可以选择分享到朋友圈或者收藏:

    /*! @brief 请求发送场景
     *
     */
    enum WXScene {
        WXSceneSession  = 0,        /**< 聊天界面    */
        WXSceneTimeline = 1,        /**< 朋友圈      */
        WXSceneFavorite = 2,        /**< 收藏       */
    };

    4.4 分享网页到微信

    只需要简单的代码,我们可以分享一个网页到微信:

    -(void)sendUrl:(NSString*)url To:(enum WXScene)scene{
        SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
        req.bText = NO;
        req.scene = WXSceneSession;// 分享到会话
        WXMediaMessage *medMessage = [WXMediaMessage message];
        medMessage.title = @"分享网页的标题"; // 标题
        medMessage.description = @"这个就是描述啦";// 描述
        WXWebpageObject *webPageObj = [WXWebpageObject object];
        [medMessage setThumbImage:[UIImage imageNamed:@"kitty"]];// 缩略图
        webPageObj.webpageUrl = @"http://www.baidu.com";
        medMessage.mediaObject = webPageObj;
        req.message = medMessage;
        [WXApi sendReq:req];
    }

    效果如图:

    上面是分享到会话里,同样的也可以分享到微信朋友圈和收藏,只要修改scene(场景)即可。

    5 对分享结果进行处理

    当微信处理完你的情求,跳回到你的app时,会给你带上一些信息,在这里你可以对其进行处理,知道是用户取消了,还是发送成功了。

    在AppDelegate.m 里:

    1. 声明实现WXApiDelegate协议
    2. 实现application:handleOpenURL方法,将url交给微信SDK进行处理
    3. 实现WXApiDelegate协议里的onResp:方法。
    // 处理其他app调起的情况
    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
        // 交给微信处理,如果它能处理 会回调delegate的相关方法如onResp:
        return [WXApi handleOpenURL:url delegate:self];
    }
    #pragma mark WXApiDelegate
    -(void) onResp:(BaseResp*)resp{
        NSString *str = [NSString stringWithFormat:@"%d",resp.errCode];
        UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"微信返回结果" message:str delegate:self cancelButtonTitle:@"好的" otherButtonTitles:nil, nil];
        [alertview show];
    }

    6.总结

    iOS分享内容到微信的基本流程到这里就差不多了,如果还想深入可以去看官方的开发文档和demo。

  • 相关阅读:
    博客园
    未释放的已删除文件
    ssh连接缓慢
    剑指 Offer 38. 字符串的排列
    剑指 Offer 37. 序列化二叉树
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 36. 二叉搜索树与双向链表
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 34. 二叉树中和为某一值的路径
    剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/-ios/p/6225270.html
Copyright © 2011-2022 走看看