IOS开发之分享

  在我们IOS软件开发当中我们有事需要分享一些图片视屏和文档之类的东西。但是有可能用的是别的软件,这时候我们就需要学习分享。

我们举个分享微信的例子好了:

看代码

先看AppDelegate.m文件内容

在AppDelegate.m里面我们需要

[WXApi registerApp:@"wx252e7c172102f9cb" withDescription:@"微信分享 1.0"];
才能够分享微信
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch./*只有写了这一句话才能够在具体的地方实现分享功能wx252e7c172102f9cb 这个项目向微信注册的开发者账号微信分享 1.0*/[WXApi registerApp:@"wx252e7c172102f9cb" withDescription:@"微信分享 1.0"];self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];ViewController * tempVC = [[ViewController alloc] init];self.window.rootViewController = tempVC;[self.window makeKeyAndVisible];return YES;
}

再看控制器

.h文件

#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property(nonatomic, strong) UIButton *wechatFriendBtn;
@property(nonatomic, strong) UIButton *wechatFriendsBtn;@end

.m文件

#import "ViewController.h"
#import "WXApi.h"@interface ViewController ()@end#define kLoadImage(name, type) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:name ofType:type]]
#define ScreenWidth self.view.frame.size.width
#define ScreenHeight self.view.frame.size.height@implementation ViewController- (void)viewDidLoad
{[super viewDidLoad];_wechatFriendBtn = [UIButton buttonWithType:UIButtonTypeCustom];_wechatFriendBtn.frame = CGRectMake(ScreenWidth / 2 - 120, ScreenHeight / 2 - 120, 80, 80);[_wechatFriendBtn setShowsTouchWhenHighlighted:YES];[_wechatFriendBtn setBackgroundImage:kLoadImage(@"btn_微信好友", @"png") forState:UIControlStateNormal];_wechatFriendBtn.enabled = YES;_wechatFriendBtn.tag = 1;[_wechatFriendBtn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:_wechatFriendBtn];_wechatFriendsBtn = [UIButton buttonWithType:UIButtonTypeCustom];_wechatFriendsBtn.frame = CGRectMake(ScreenWidth / 2 + 40, ScreenHeight / 2 - 120, 80, 80);[_wechatFriendsBtn setShowsTouchWhenHighlighted:YES];[_wechatFriendsBtn setBackgroundImage:kLoadImage(@"btn_朋友圈", @"png") forState:UIControlStateNormal];_wechatFriendsBtn.tag = 2;[_wechatFriendsBtn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:_wechatFriendsBtn];}-(void)btnClicked:(UIButton *)btn
{switch (btn.tag){case 1:{//这种分享是带文字和图片的分享,属于网页分享,注意分享的图片大小不能超过32k。WXMediaMessage *message = [WXMediaMessage message];//分享内容的标题message.title = @"分享的标题";//分享内容的描述message.description = @"分享的介绍";//分享的图片[message setThumbImage:kLoadImage(@"share", @"png")];//分享链接WXWebpageObject *ext = [WXWebpageObject object];ext.webpageUrl = @"www.sougou.com";message.mediaObject = ext;SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];/*发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息*/req.bText = NO;req.message = message;//这个属性表示分享到好友req.scene = WXSceneSession;[WXApi sendReq:req];//这种分享的是纯文字的信息。//            SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];//            req.text = _linkStr;//            req.bText = YES;//            req.scene = WXSceneSession;//            [WXApi sendReq:req];
        }break;case 2:{WXMediaMessage *message = [WXMediaMessage message];message.title = @"分享的标题";message.description = @"分享的介绍";[message setThumbImage:kLoadImage(@"share", @"png")];WXWebpageObject *ext = [WXWebpageObject object];ext.webpageUrl = @"www.baidu.com";message.mediaObject = ext;SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];req.bText = NO;req.message = message;//这个属性表示分享到朋友圈req.scene = WXSceneTimeline;[WXApi sendReq:req];//            SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init];//            req.text = _linkStr;//            req.bText = YES;//            req.scene = WXSceneTimeline;//            [WXApi sendReq:req];
        }break;}
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

 

  

转载于:https://www.cnblogs.com/YU411524/p/4955427.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmake install_在vscode中使用cmake-format(windows端)

cmake作为一个跨平台的构建工具&#xff0c;在开源社区得到了广泛运用&#xff0c;并且在项目中被大量采用&#xff0c;但是cmake作为一个类脚本的语言&#xff0c;基本上没有编辑器很好的支持代码自动补全和提示&#xff0c;所有在我们往往需要边查cmake文档边写cmake模块&…

currentTitle的用法

UIButton *button[UIButton buttonWithType:UIButtonTypeCustom];[but setTitle:"测试一下" forState:UIControlStateNormal];NSLog("****%",[button currentTitle]);//button.currentTitleNSLog("******%",button.titleLabel.text);两者输出的结…

python返回函数值并退出函数_如何在python的阻塞的函数中获取变量值

目前是使用C嵌入式的python函数 python函数是阻塞式的接收服务器消息 直到退出监听才会有返回值 监听中收到消息会调用python的一个回调函数&#xff0c;可以获取到收到的消息 所以要怎么样来返回消息给C EDIT: 代码如下callback打印可以打印正确数据&#xff0c;问题是 这里用…

gb50243-2016通风与空调工程施工质量验收规范_07K304 空调机房设计与安装

免费下载07K304 空调机房设计与安装百度网盘网址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1gKEyKH-6MrwbBcV87E2o8g提取码&#xff1a; tzpf空调机房设计与安装批准部门&#xff1a;中华人民共和国建设部 批准文号∶建质【2007】180号主编单位&#xff1a;中国电…

mooc_java 集合框架中 学生所选课程2MapHashMap

Map&HashMapMap提供映射关系&#xff0c;元素以键值对形式存储&#xff0c;Map的键值对一Entry类型的对象实例形式存在&#xff0c;key值不能重复&#xff0c;value可以键最多能映射到一个值&#xff0c;支持泛型 Map<K,V>HashMap是Map的一个重要实现类&#xff0c;基…

python爬虫反爬对抗_python爬虫反反爬,你几乎可以横扫大部分 css 字体加密的网站...

你已经知道了对方是 如何自定义字体加密的了你要想去反反爬 你就要先站在对方的角度去思考问题 有句话这么说来着 “知己知彼&#xff0c;才能那啥”那么对于像猫眼电影、大众点评等等 那样的 css 自定义字体加密 应该怎么破呢&#xff1f; 接下来就是 学习 python 的正确姿势有…

依赖注入底层反射原理_PHP反射机制实现自动依赖注入

依赖注入又叫控制反转&#xff0c;使用过框架的人应该都不陌生。很多人一看名字就觉得是非常高大上的东西&#xff0c;就对它望而却步&#xff0c;今天解开他它的神秘面纱。废话不多说&#xff0c;直接上代码&#xff1b;/**** 工具类&#xff0c;使用该类来实现自动依赖注入。…

“Transaction rolled back because it has been marked as rollback-only”

spring的声明事务提供了强大功能&#xff0c;让我们把业务关注和非业务关注的东西又分离开了。好东西的使用&#xff0c;总是需要有代价的。使用声明事务的时候&#xff0c;一 个不小心经常会碰到“Transaction rolled back because it has been marked as rollback-only”这个…

c++获取时间戳_时间简史

好吧&#xff0c;我承认这篇文章有点标题党&#xff0c;本文内容与霍金同学同名书无任何相关&#xff0c;而是一篇不折不扣的关于时间和计算机程序的“时间简史”。时间是什么&#xff1f;数学家说时间是第四维度&#xff0c;不过显然计算机不这么看&#xff0c; 在计算机的世界…

cmake添加查找目录_CMakeLists.txt文件写法(7):添加查找头文件的路径

[1.List转换成为数组。(这里的List是实体是ArrayList)   调用ArrayList的toArray方法。  toArray  public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中INCLUDE_DIRECTORIES: Add include directories to the build.[ 最近在学习Linux下的C编程&…

[iOS] 建立与使用Framework

[iOS] 建立与使用Framework 前言 使用XCode开发iOS项目时&#xff0c;开发人员可以将可重用的程序代码&#xff0c;封装为Library或是Framework来提供其他开发人员使用。这两种封装方式在使用的时候&#xff1a;Library需要将.a封装档与所有公开的.h档提供给使用者加入项目&…

a标签点击事件_html常用标签

一、a标签作用&#xff1a;1、跳转到外部页面&#xff1b;2、跳转到内部锚点&#xff1b;3、跳转到邮箱或电话。属性&#xff1a;href&#xff08;hyperreference&#xff09;&#xff1a;超级引用、超级链接1、a的href的取值&#xff1a;<//http://google.com&#xff1a;无…

mysql导出表_mysql导出表的3种方式

文章转载自 &#xff1a;https://blog.csdn.net/jbb0403/article/details/26359573navicat导出表一共有三中用法&#xff1a;第一种&#xff1a;数据库上右键—>"转储SQL文件"&#xff0c;如图&#xff1a;"转储文件"是把整个数据库表全部导出&#xff…

Calculation控制台

接口 using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace susuusu {interface Interface1{int calculate(int a, int b,int c);} }加法类 using System; using System.Collections.Generic; using System.Linq; using System.Te…

网络资产管理系统_固定资产管理系统的常用操作

固定资产管理系统作为一个办公软件&#xff0c;能够帮助企业高效管理固定资产的日常事务。随着信息技术的发展和普及&#xff0c;越来越多的企业都开始使用固定资产管理系统&#xff0c;可是对于首次使用或者没有接触过固定资产管理系统的新手企业来说&#xff0c;对于系统的了…

mac mysql my.cnf_mac 增加 my.cnf

mac 增加 my.cnf发布时间&#xff1a;2018-04-25作者&#xff1a;laosun阅读(8133)mysql下没有my.cnf&#xff0c;如果想要修改一些配置还挺懵逼的&#xff0c;网上找了一些资料&#xff0c;经过博主亲测没有问题&#xff0c;发篇文章一为共享&#xff0c;二为做个备忘。博主使…

insert---插入记录

insert into table_name (column1,column2,.......) values(value1,value2,......); 例&#xff1a; insert into userinfo (name, sex, num) values(John, male, 100001 ); 说明&#xff1a; 1.column必须与value一一对应。 2.当对所有的字段添加数据时&#xff0c;(column1,…

python取前三位_Python 实现取多维数组第n维的前几位

Python 实现取多维数组第n维的前几位 现在我们有一个shape为(7352, 9, 128, 1)的numpy数组。 想要取出第2维的前三个数据&#xff0c;构成新数组(7352, 3, 128, 1) 我的思想是&#xff1a;将第2维数据转置&#xff08;transpose&#xff09;到第一维&#xff0c;再用切片&#…

solr 7 mysql导入_solr 7.7.0 windows 导入mysql数据库数据

接上一篇 准备导入数据首先修改hello/cong目录下的solrconfig.xml文件&#xff0c;添加如下节点&#xff1a;data-config.xml新建一个data-config.xml文件&#xff0c;与solrconfig.xml同一个目录下 添加数据库链接信息DataSource&#xff1a;数据库连接信息Entity&#xff1a;…

guava之cache

转自&#xff1a;http://ifeve.com/google-guava-cachesexplained/ 范例 01LoadingCache<Key, Graph> graphs CacheBuilder.newBuilder()02 .maximumSize(1000)03 .expireAfterWrite(10, TimeUnit.MINUTES)04 .removalListener(MY_LISTENER)05 …