前段時間我們手游出現(xiàn)在iOS10系統(tǒng)上Facebook登錄調(diào)出白色網(wǎng)頁钳幅,什么內(nèi)容都沒有壕翩。
經(jīng)過測試發(fā)現(xiàn)棚品,在iOS10以下系統(tǒng)都沒問題催享,唯獨(dú)在iOS10系統(tǒng)上就會出現(xiàn)此現(xiàn)象抑进。首先想到的是Facebook本身SDK可能不支持iOS10系統(tǒng),于是翻墻到Facebook官網(wǎng)查看睡陪,發(fā)現(xiàn)確實(shí)有新的SDK適配iOS10系統(tǒng)寺渗,欣喜若狂匿情,那不就是替換一下SDK的事,替換完成之后信殊,測試一看炬称,竟然還是一樣,那就排除SDK問題涡拘。然后就是網(wǎng)上查找各種帖子玲躯,發(fā)現(xiàn)少之又少,goole查找還算找到一點(diǎn)鳄乏,可惜我英文不好跷车,看不懂,哈哈橱野,不過不要緊朽缴,有些關(guān)鍵字還是知道的,照著上面的幾種方法修改水援,還是不行密强。折磨了我兩天之后,終于在我一次次的測試(這邊改下蜗元,那邊改下)或渤,被我找到原因了。
首先:我們的手游是用Quick-Cocos2d-x3.3 版本開發(fā)的奕扣,F(xiàn)B的有關(guān)操作我集合到了一個繼承于UIViewController的類
用的是Facebook的FBSDKLoginButton按鈕進(jìn)行的登錄操作:
登錄時首先把FB集合類添加到程序的主視圖中薪鹦,然后才會顯示Facebook的web登錄頁面,不加是不會顯示的惯豆。使用FBSDKLoginButton登錄時創(chuàng)建好了還須監(jiān)聽FB登錄回調(diào)事件池磁。
之后通過測試,發(fā)現(xiàn)這種方法無論怎么搞在iOS10系統(tǒng)上都是一個空白的web登錄界面循帐,什么都操作不了框仔。后來看到官網(wǎng)上還有一種Facebook登錄接口舀武,用的是FBSDKLoginManager這個類登錄拄养,果斷換了試一下,發(fā)現(xiàn)還是沒有效果银舱,最后在AppController.mm類中啟動游戲就調(diào)用FBSDKLoginManager類登錄FB瘪匿,發(fā)現(xiàn)有用了,得出結(jié)果就是:在iOS10系統(tǒng)上寻馏,F(xiàn)B登錄一定得在主視圖上做操作棋弥,子試圖不行。(iOS10之前的是可以的)诚欠,最后用的代碼:
解釋下funId是Lua調(diào)用OC函數(shù)時傳過來的函數(shù)顽染,登錄成功之后把FB的userId漾岳、昵稱nickName、FB頭像地址等傳回Lua函數(shù)進(jìn)行登錄操作粉寞。
方法:UIViewController* ctrol=[UIApplicationsharedApplication].keyWindow.rootViewController;是獲取app主視圖尼荆。