做公司iOS app的时候,需要把单品页分享到社交网络,按照传统的步骤,去申请key,下载官方SDK和Demo,然后跑一下,去改造自己的app。这样不仅增大了app的体积(光SDK都比我自己的app大了),而且每个平台自己的SDK用法不统一,很零散。于是自己研究了一下各个SDK和官方客户端通信的数据格式,封装了一下,成了OpenShare。目前只支持iOS平台(android正在筹划中),支持CocoaPods。代码只有几百行,目前支持微博、微信、QQ、人人。即使不在自己的项目中使用,也可以clone下来研究一下app之间的通信,所以给个star是很有必要的(^_^)。
Github地址:https://github.com/100apps/openshare
整个hack过程已经写到我的博客了:http://www.gfzj.us/series/openshare/
欢迎使用:
pod 'OpenShare'
楼主只是一个iOS新人,属于半路出家型,代码写的不好,如果有改进的想法请务必留言或者发邮件给我。如果您能「Pull Requests」,想必也是极好的。
1
cielpy 2015-05-22 12:09:04 +08:00
感谢已发送,回头试用一下。
|
2
WildCat 2015-05-22 12:15:44 +08:00
太棒了,支持!
|
3
Kai MOD moved to /go/create
|
4
mthli 2015-05-22 12:21:41 +08:00 via Android
不错,希望尽快支持Android~
|
5
yautou 2015-05-22 12:31:33 +08:00
感谢分享,减少轮子好顶赞!
|
6
lincanbin 2015-05-22 12:36:27 +08:00
hack意味着可能随时失效吧?
我先去看看你是怎么实现的。 |
7
zooooom 2015-05-22 12:55:14 +08:00
感谢,学习一下了
|
8
marginleft OP @lincanbin 确实有失效的风险。「协议」是遵循了SDK的最新版本,如果失效了,有很大的可能这个版本的官方SDK也失效了。目前来看,各家的协议都比较简单,所以希望可以撑一段时间。另外,我感觉这个跟「破解」有区别,暂时还找不出官方封掉的理由。
理想的状态是各大厂商能一块坐下来制定一个标准,不要各自为政,这样就不用每个平台下载一个SDK了。 |
9
NUT 2015-05-22 13:15:05 +08:00
学习了!
|
10
missdeer 2015-05-22 13:52:20 +08:00 1
GPL v3,让人app还怎么上架啊
|
11
black 2015-05-22 14:01:07 +08:00
支持楼主,可是 GPL v3 让人望而却步。
|
12
marginleft OP @missdeer
@black OpenShare的衍生物应该仅限于app的分享/登录功能,如果使用了OpenShare,应该把对OpenShare的改进开源出来,但是其他功能则不必。 可以参考android : http://www.ifanr.com/92261 我本意是这样的,不知道我理解的对不对,如果不对的话,请指正。或者实在不行,我改个协议得了,^_^。 |
13
missdeer 2015-05-22 15:06:52 +08:00
@marginleft
"一旦程序使用了 GPL 的模块,本身即被传染,程序必须成为 GPL。如果主程序与 GPL 类库是静态链接(Static Link)的关系,业界一般认为主程序必须限定为 GPL。" OpenShare应该适用这条。iOS是全静态链接吧?所以app也是GPL了。 |
15
w88975 2015-05-22 15:14:02 +08:00
我以前也在windowsphone上写过一个 支持QQ 微博 QQ空间 腾讯微博 人人网 ,也是自己hack的协议
|
16
sobigfish 2015-05-22 15:20:59 +08:00
用iOS内置的话这样子不能显示来自哪。。也很不爽的
|
20
marginleft OP @w88975 赞!
没有玩过windowsphone,求代码,交流一下。 |
21
marginleft OP @missdeer 多谢指导!看来和我最初想得不一样,待我周末研究一下各种协议,看看如何规避这个问题。
|
22
marginleft OP @oott123 我看了一下android系统自带的。一般分享功能确实够了,但是还有一些不足:
1. 不支持登录 2. 不能发送更复杂的类型,比如微信App类型的消息。 看情况吧,如果仅用分享功能,而系统提供的够用,当然是最好不过了。 |
23
oott123 2015-05-22 18:52:33 +08:00
@mthli 我用系统的便签试了一下,分享菜单里有一个微信图标的[朋友],一个三种颜色盒子的[微信收藏]和一个朋友圈快门图标的[朋友圈],都是可用的……
|
25
pythons 2015-05-22 21:55:46 +08:00
代码精简下吧,太乱了。
|
26
marginleft OP @pythons 具体是哪些部分呢?我应该从哪里开始精简?比如?
|
27
icylogic 2015-05-22 22:21:14 +08:00
http://image.beekka.com/blog/201105/free_software_licenses.png
关于 License, 除了这张简单的分类图, 还可参考 QT for iOS 关于 License 的说明 http://wiki.qt.io/Licensing-talk-about-mobile-platforms#Qt_for_iOS |
28
liuyihan 2015-05-23 09:49:06 +08:00
顶楼主,非常好的集成,省去n多SDK。但是希望改下协议。。。不然不敢用
|
29
marginleft OP @icylogic 非常感谢,受益匪浅。
|
30
idevhan 2018-05-10 12:27:13 +08:00
能 hook 一下微信分享,支持多图分享到微信就好啦。
|