网络请求,多线程,第三方分享

IOS新浪微博、微信分享

2016-11-29  本文已影响1483人  EternalSunLhx

用的各平台原生的分享SDK,未采用第三方集成的SDK(例如ShareSDK、友盟U-Share等)。

原因有三:
  1. 不想暴露自己的AppKey、AppID等信息给第三方;
  2. 第三方集成的原生SDK可能不是最新的,或者是排版不对;
  3. 遇到奇怪问题的时候,于第三方客服沟通,有时会解决不了;
注意事项:
  1. 最好是先注册好账号,申请相应的AppKey或AppID;
  2. IOS的坑比较小,稍微注意一下就好;

1. SDK相关文件配置

注意:xcode8自带的库现在都是以 .tbd 结尾,而不是.dylib

注意:
  1. 新浪微博中有个WeiboSDK.bundle(当没有新浪微博客户端时,会调用SDK的浏览器,这个就是浏览器要用到的资源),这里面是新浪微博的图片资源文件,一定要放在新浪微博能找得到的地方(mainBundle文件夹等,按自己的项目来),否则会出现闪退现象。
  2. 上图中有个MOBFoundation.framework,主要是微信来剪裁缩略图。github地址:点我跳转

2. 编写自己需要分享的代码

{
//wechat
//向微信注册
[WXApi registerApp:@"wx8888888888888888" withDescription:@"ShareDemo"];

    //向微信注册支持的文件类型
    UInt64 typeFlag = MMAPP_SUPPORT_TEXT | MMAPP_SUPPORT_PICTURE | MMAPP_SUPPORT_LOCATION | MMAPP_SUPPORT_VIDEO |MMAPP_SUPPORT_AUDIO | MMAPP_SUPPORT_WEBPAGE | MMAPP_SUPPORT_DOC | MMAPP_SUPPORT_DOCX | MMAPP_SUPPORT_PPT | MMAPP_SUPPORT_PPTX | MMAPP_SUPPORT_XLS | MMAPP_SUPPORT_XLSX | MMAPP_SUPPORT_PDF;

    [WXApi registerAppSupportContentFlag:typeFlag];

    //sinaweibo
    //新浪微博初始化
    [WeiboSDK registerApp:@"888888888"];
}

//添加分享回来的回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{
[WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
[WeiboSDK handleOpenURL:url delegate:[SinaWeiboApiManager sharedManager]];
return YES;
}

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
    [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    [WeiboSDK handleOpenURL:url delegate:[SinaWeiboApiManager sharedManager]];
    return YES;
}
```

3. 添加写好的文件到配置Build Phases --> Complie Sources


总结:

总的来说IOS的分享坑很少,基本没有,只要注意下微信的缩略图的大小,保证小于32KB,就不会出现什么大问题;还有就是新浪微博的WeiboSDK.bundle要放对位置,其他的只要按照上面的配置来,就没什么大问题。


可能出现的问题:

  1. 点击微信分享,闪一下就退回到应用。
    有以下情况会造成这种现象:
    (1)缩略图的大小>32kb;
    (2)初始化和配置的AppID和申请的不一样,改正好后,最好删除微信再试;
  2. 点击新浪微博分享闪退。是WeiboSDK.bundle没放对位置
  3. 点击新浪微博分享,闪一下退回到应用。
    有以下情况会造成这种现象:
    (1)没有配置白名单、以及https;
    (1)初始化和配置的AppKey和申请的不一样;

ANDROID新浪微博、微信分享:点我跳转

上一篇 下一篇

猜你喜欢

热点阅读