首页 > 其他分享 >ShareSDK适配iOS 9系统

ShareSDK适配iOS 9系统

时间:2022-11-16 13:00:37浏览次数:38  
标签:无需 适配 配置 iOS 微博 添加 ShareSDK com SDK

1、大部分社交平台接口不支持https协议。

问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。

还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片

解决方案(以下方法2选1):

(1)、暂时退回到http协议。

具体方法:

在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES;

 

(2)、设置域。可以简单理解成,把不支持https协议的接口设置成http的接口。

具体方法:

1)、在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

2)、然后给它添加一个NSExceptionDomains,类型为字典类型;

3)、把需要的支持的域添加給NSExceptionDomains。其中域作为Key,类型为字典类型。

4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

均为Boolean类型,值分别为YES、NO、YES。

细节提示:在iOS9中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!

各平台设置域

新浪微博

  • weibo.com
  • weibo.cn
  • sina.com.cn

腾讯微博

  • qq.com

微信

  • qq.com

QQ/QZone

  • qq.com

易信

  • 无需配置

豆瓣

  • 无需配置

人人

  • renren.com

开心网

  • kaixin001.com
  • kaixin001.com.cn

有道

  • youdao.com

Facebook

facebook.com

fbcdn.net

akamaihd.net

Twitter

  • twitter.com

Google+

  • 无需配置

Instagram

  • instagram.com
  • instagramstatic-a.akamaihd.net

Tumblr

  • tumblr.com

Instapaper

  • instapaper.com

Pinterest

  • 无需配置

明道

  • 无需配置

Evernote印象笔记

  • 无需配置

VK

  • 无需配置

pocket

  • 无需配置

LinkedIn

  • 无需配置

Dropbox

  • 无需配置

Flickr

  • 无需配置

2、大部分社交平台SDK不支持bitcode。

问题描述:iOS 9新建项目默认需要支持bitcode,而不支持bitcode的SDK会导致无法编译运行。

解决方案:

(1)、暂时关闭对bitcode的支持(建议),方法如下图

(2)、移除不支持bitcode的平台SDK。

3、添加Scheme白名单。

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

具体方法:

1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。

2)、然后给它添加一个需要支持的项目,类型为字符串类型;

各平台OpenURL白名单说明

新浪微博

  • sinaweibo,
  • sinaweibohd,
  • sinaweibosso,
  • sinaweibohdsso,
  • weibosdk,
  • weibosdk2.5
  • [后两个若导入新浪SDK则需要]

腾讯微博

  • TencentWeibo,
  • tencentweiboSdkv2
  • [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]

豆瓣

  • 无需配置

开心网

  • 无需配置

微信

  • wechat,
  • weixin

易信

  • yixin,
  • yixinopenapi

支付宝

  • alipay,
  • alipayshare

QQ

  • mqqOpensdkSSoLogin, 
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqq,
  • mqqapi

QZONE

  • mqzoneopensdk, 
  • mqzoneopensdkapi,
  • mqzoneopensdkapi19,
  • mqzoneopensdkapiV2,
  • mqqOpensdkSSoLogin,
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqqapi,
  • mqqwpa,
  • mqzone,
  • mqq

[注:若同时使用QQ和QZONE,则直接添加本格即可]

Google+

  • googlechrome, 
  • googlechrome-x-callback,
  • hasgplus4,
  • com.google.gppconsent,
  • com.google.gppconsent.2.2.0,
  • com.google.gppconsent.2.3.0,
  • com.google.gppconsent.2.4.0,
  • com.google.gppconsent.2.4.1

人人网

  • renrenapi,
  • renrenios,
  • renreniphone,
  • renren,

  • 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK

Facebook

  • fbauth2

Twitter

  • 无需配置

Pocket

  • pocket-oauth-v1

Pinterest

  • pinit

Instagram

  • instagram

WhatsApp

  • whatsapp

Line

  • line

KakaoTalk

  • kakaolink

KaokaoStory

  • storylink

LinkedIn

  • 无需配置

Tumblr

  • 无需配置

非平台类,如短信,复制,邮件等

  • 无需配置

必看注意:

1.在iOS9中,如果没有添加上述白名单,系统会打印类似如下提示: 

 

.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图)

如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ等。

2.添加完上述所需的名单,系统依然会打印类似信息: 

 

.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”

这是系统打印的信息,目前是无法阻止其打印,即无法消除的

3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。

如果没有设置白名单的话,系统的打印信息如图所示:

添加完后,系统是依然会打印的,不过error会变成null:

4、其他:

在iOS9下,新浪微博SDK里面使用的JSONKit在部分机型可能导致崩溃。崩溃信息如下图。

解决:暂时移除新浪微博SDK,等待新浪微博SDK的更新。

影响:移除新浪微博SDK后,除了依赖SDK实现的跳到客户端的分享和关注官网微博等失效。其他主要功能如分享、SSO、获取用户资料等不受影响。

 

标签:无需,适配,配置,iOS,微博,添加,ShareSDK,com,SDK
From: https://blog.51cto.com/u_15718057/5855905

相关文章

  • vue3+Ts+Vite+ElementPlus+Axios+Router+Pinia 创建过程以及会出的错误
    第一步保证Node.Js版本为12.0以上打开cmd命令输入node-v看版本目前是最新用18.0就行,下载地址:[https://nodejs.org/en/](https://nodejs.org/en/)安装node.js配环境......
  • Vue使用axios请求
    新建组件(局部引入):<template><div><p>{{msg}}</p></div></template><script>importaxiosfrom'axios';importQueryStringfrom'qs';exportde......
  • vue中 封装axios 以便管理和使用
    1.npm或yarn 安装axios到项目中npminstallaxiosyarnaddaxios2.新建api文件引入服务器的基本IP:端口//所有用户的接口importaxiosfrom"axios";//服......
  • 【快应用】异形屏快应用如何全屏适配
    ​ 问题背景:快应用页面中设置fullscreen属性为true全屏模式下,在一些异形屏上无法完全适配,状态栏会被黑边替代,无法真正全屏显示。这部分机型如何才能完全适配变成全屏呢?......
  • 【前端】Axios
    axios一、axios概述axios作用:发送异步请求获取数据。常见的方法:get、post、put、delete;在发送的时候可以指定参数(地址、请求方式和请求头部信息);返回数据结构(data、sta......
  • 在 iOS 16 中用 SwiftUI Charts 创建一个折线图
    前言苹果在WWDC2022上推出了SwiftUI图表,这使得在SwiftUI视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了......
  • 最全iOS 应用上架流程(提交到AppStore)
    一、上架基本需求资料1、苹果开发者账号(公司已有可以不用申请,需要开通开发者功能,每年99美元)2、开发好的APP借助辅助工具appuploader创建证书跟描述文件二、证书,描述文件(借......
  • 可视化大屏的几种屏幕适配方案,总有一种是你需要的
    假设我们正在开发一个可视化拖拽的搭建平台,可以拖拽生成工作台或可视化大屏,或者直接就是开发一个大屏,首先必须要考虑的一个问题就是页面如何适应屏幕,因为我们在搭建或开发时......
  • 可视化大屏的几种屏幕适配方案,总有一种是你需要的
    假设我们正在开发一个可视化拖拽的搭建平台,可以拖拽生成工作台或可视化大屏,或者直接就是开发一个大屏,首先必须要考虑的一个问题就是页面如何适应屏幕,因为我们在搭建或开发......
  • iOS 启动优化测试
    APP的启动在iOS中,讨论的APP的启动可以分为2种:冷启动(ColdLaunch):从零开始启动APP热启动(WarmLaunch):APP已经在内存中,在后台存活着,再次点击图标启动APP主要是针对冷启......