环境:Xcode7.2 ios9.2 语言Swift
注意:
新浪微博应用的回调页一定要设置并且要和工程里面设置的回调页一样才能使用新浪微博分享,不然会报错误error:redirect_uri_mismatch
首先设置
-
支持http协议
(1)暂时回退到http协议 info plist加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
问题一:
“....... app is not allowed to query for scheme sinaweibosso”
解决方法:
iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。
在iOS9/10下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。 同样在info.plist增加LSApplicationQueriesSchemes参考:http://dev.umeng.com/social/ios/ios9
问题二,上面的错误解决后又报了如下错误
....failed for URL: "wtloginmqq2://qzapp" - error: "(null)"..
网上说:
这是模拟器的问题,使用真机测试就不会有这种问题了!
参考:https://segmentfault.com/q/1010000003741815(我还没验证,没有iphone手机没法真机调试)
问题三:
真机调试出现:
There was an internal API error.
错误原因:把Product Name作为程序名称,程序名称错乱
解决方法:检查Product Name, 不要包含中文以及特殊字符。在info.plist中新增Bundle display name:我的程序名称。程序名称改为英文,Product Name也改为一样的。
问题四:
弹出的分享菜单无法显示为中文(真机和模拟器已经设置为简体中文)
如果手机设置为中文还不行的话,那检查下项目里有没有设置本地话么,project-info-Localization,里面看看有没有Chinese和English,如果设置了还有这样的问题的话,那自己在plist文件里在加上Localization,也设置下Chinese和English问题五:模拟器iphone4,iphone5调试报错(真机iphone4调试也报错)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_QQApiInterface", referenced from:
将包删除后重新导入(发现还是在模拟器上报这个错但是真机可以调试了)
解决方案参考:
问题五:隐藏某个分享平台(使某个平台不显示)
控制平台是否显示在AppDelegate.swift中
ShareSDK.registerApp("16f422b09c7cf",
activePlatforms: [
SSDKPlatformType.TypeSinaWeibo.rawValue,
SSDKPlatformType.TypeQQ.rawValue,
SSDKPlatformType.TypeWechat.rawValue,],
......
问题六:控制平台的显示顺序:
在items:里面控制显示顺序
问题七:自定义分享平台的图片:
替换导入工程中的图片就行了
https://segmentfault.com/q/1010000003741815
http://www.jianshu.com/p/e38a609f786e
http://dev.umeng.com/social/ios/ios9
http://blog.csdn.net/soindy/article/details/48684013
http://www.bkjia.com/IOSjc/1117354.html