1. 程式人生 > >ShareSDK 各平臺配置

ShareSDK 各平臺配置

1、大部分社交平臺介面不支援https協議。

問題描述:在iOS9下,系統預設會攔截對http協議介面的訪問,因此無法獲取http協議介面的資料。對ShareSDK來說,具體表現可能是,無法授權、分享、獲取使用者資訊等。

還可能造成我們的編輯介面裡傳http之類的網路圖片的時候,我們的編輯介面不會顯示圖片截圖,解決的辦法或者全面關閉https,允許使用http請求;或者把圖片的域新增;又或者選擇使用https的圖片

解決方案:

(1)、暫時退回到http協議。

具體方法:

在專案的info.plist中新增一個Key:NSAppTransportSecurity,型別為字典型別。

然後給它新增一個Key:NSAllowsArbitraryLoads,型別為Boolean型別,值為YES;

751FEFB8-86A2-45EC-8F61-A1A5081C5465

(2)、設定域。可以簡單理解成,把不支援https協議的介面設定成http的介面。

具體方法:

1)、在專案的info.plist中新增一個Key:NSAppTransportSecurity,型別為字典型別。

2)、然後給它新增一個NSExceptionDomains,型別為字典型別;

3)、把需要的支援的域新增給NSExceptionDomains。其中域作為Key,型別為字典型別。

4)、每個域下面需要設定3個屬性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

均為Boolean型別,值分別為YES、NO、YES。

B4CB0038-520E-4E1A-BDD1-C5AB8627F770

細節提示:在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。

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

易信

  • yixin,
  • yixinopenapi

支付寶

  • alipay,
  • alipayshare

QQ

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

QZONE

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

[:若同時使用QQQZONE,則直接新增本格即可]

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.上述白名單,是技術人員通過不斷的測試收集整理所得,如果各位開發者朋友發現上表格有所遺漏,請根據系統資訊新增相關白名單即可。

如果沒有設定白名單的話,系統的列印資訊如圖所示:

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

新增完後,系統是依然會列印的,不過error會變成null:

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

4、其他:

在iOS9下,新浪微博SDK裡面使用的JSONKit在部分機型可能導致崩潰。崩潰資訊如下圖。

解決:暫時移除新浪微博SDK,等待新浪微博SDK的更新。

影響:移除新浪微博SDK後,除了依賴SDK實現的跳到客戶端的分享和關注官網微博等失效。其他主要功能如分享、SSO、獲取使用者資料等不受影響。

4062130C-1138-4352-89AF-E518F189A851