背景:
遇到一個線上用戶反饋 case,用戶在分享成功之後回調,我們的回調彈窗閃爍多次,無法繼續操作,部分機型出現
case跟蹤:
針對用戶情況,用華爲榮耀9.0系統復現。發生場景是,用戶在簽到中心做任務領取獎勵,分享回調頁面無法正常展示,有很嚴重體驗問題,而且是少部分機型出現。在 debug 環境逐步跟蹤發現,原來是activity 的 style 中的android:windowIsTranslucent 屬性導致問題。
復現場景是:需要進行分享調起三方 app,分享回調之後,彈起 dialog 就會出現。
原因:
部分高版本手機在用 activity 模擬的 dialog 樣式情況下(android:windowIsTranslucent 主要用戶控制彈窗透明,否則用 activity 模擬就沒有意義),跳出 app,有 startActivityForResult 之後,會有dialog 彈出失敗的問題,其實本質上也不是彈出失敗,這個模擬的 dialog 應該是正常彈出了,懷疑是窗體被全部設置透明瞭,將android:windowIsTranslucent就不會出問題。 或者不走分享,直接調起這個摸你的 dialog 也不會有問題。所以正常情況下,android:windowIsTranslucent和分享回調不同時使用都不會出現問題,極限情況下,就悲劇了!而且是部分高版本手機會出現。 更深層次的原因還有待跟蹤....
解決方案:
還是用正常的 dialog 去實現,不要用 activity 去模擬 dialog 了,說不好就遇到類似坑。