• iOS


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

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

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

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

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

    具体方法:

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

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

    A4FACB65-2EED-437F-8D8B-6378D093AAC6

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

    具体方法:

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

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

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

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

    均为Boolean类型,值分别为YES、NO、YES。(微博在ios10上授权分享需要额外配置NSExceptionMinimumTLSVersion,类型为string,值是TLSv1.0)

    C131F685-5027-4F4E-8BE1-5ECAF060C2DC

    细节提示:在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

    Kakao

    • 无需配置

    kakao.com

    注意:微信,QQ,Facebook,Twitter,Google+,LinkedIn,Instapaper,Pocker,YouDaoNote,Dropbox,印象笔记这些平台都可以不设置退回http或者配置域,而且可以正常运行,其中注意新浪微博如果是要网页授权分享的话,需要配置退回http或者配置域,但是如果客户端分享的话,不需要配置。

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

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

    支持bitcode :

    • 1、微信SDK
    • 2、QQ SDK
    • 3、新浪微博SDK
    • 4、支付宝SDK
    • 5、Kakao SDK
    • 6、Facebook Messenger

    不支持bitcode:

    • 1、易信 SDK
    • 2、人人 SDK

    不支持 bitcode 的 SDK 解决方案:

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

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

    3148F4FF-C428-4DF7-81DE-01BCCF44FF63

    3、添加Scheme白名单。

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

    具体方法:

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

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

    FBEF076A-611A-4B43-B8A9-F1825CC08FDA

    各平台OpenURL白名单说明

    新浪微博

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

    腾讯微博

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

    豆瓣

    • 无需配置

    开心网

    • 无需配置

    微信

    • wechat,
    • weixin

    FacebookMessenger

    • fb-messenger

    易信

    • yixin,
    • yixinopenapi
    • yixinoauth
    • yixinfav

    支付宝

    • alipay,
    • alipayshare

    QQ

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

    QZONE

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

    [注:若同时使用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
    • fbauth

    Twitter

    • 无需配置

    Pocket

    • pocket-oauth-v1

    Pinterest

    • pinit
    • pinterestsdk.v1

    Instagram

    • instagram

    WhatsApp

    • whatsapp

    Line

    • line
    • lineauth
    • line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)

    KakaoTalk

    • kakaolink

    KaokaoStory

    • storylink

    LinkedIn

    • 无需配置

    Tumblr

    • 无需配置

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

    • 无需配置

    钉钉

    • dingtalk
    • dingtalk-open

    美拍

    • mtmv
    • mpsharesdk10
    • mpsharesdk11

    YouTube

    • youtube
    必看注意:
    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.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。

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

    屏幕快照 2015-09-17 下午7.03.30

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

    屏幕快照 2015-09-17 下午7.03.36

     

  • 相关阅读:
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long 解决方法
    Apache Commons 简介
    CSS设置只显示两行文字
    HTML中关于动态创建的标签无法绑定js事件的解决方法:.on()方法的 [.selector]
    AISing Programming Contest 2021(AtCoder Beginner Contest 202)E
    CF620E New Year Tree(dfs序+线段树)
    HDU6955 2021多校 Xor sum(字典树+前缀和异或)
    HDU6959 2021多校 zoto(莫队+分块)
    CF1285D Dr. Evil Underscores(分治)
    CF706D Vasiliy's Multiset(字典树的删除)
  • 原文地址:https://www.cnblogs.com/shenlaiyaoshi/p/7610065.html
Copyright © 2020-2023  润新知