心酸史:
自從接觸rn開始后,越來越多的引入第三方組件而開始的配置文件,讓自己一再頭疼:
明明是按照官方文檔一步一步的配置,為什么別人可以做到的自己卻屢屢出錯,真是哭笑不得……從微信分享react-native-wechat,極光推送jpush-react-native,再到現在的獲取設備信息react-native-device-info,真的是怕了配置文件了(或許大神們一直不會理解像zheng小葉這樣菜鳥級手機開發的這般痛苦……個中滋味只有自己深知)但是當別人再問自己相關的配置時,自己還是不能只用“這個我不會,你自己看吧!”的回答敷衍,畢竟要做團結有愛的好同事嘛,況且也要做個好榜樣(就像鄭小爽一樣)。於是,就硬着頭皮再上手吧!
正題:
文檔地址:https://github.com/rebeccahughes/react-native-device-info
按照文檔中的一步步認真修改,基本就是可以正常使用,只是有幾點小問題需要特殊處理一下。
若干問題:
配到這里的時候,這里可以跳過;
配置好文件,再將app安裝在手機上。(在書上看過,rn項目還是使用真機性價比高些)因此,關掉模擬器連上真機react-native run-android,可是莫名其妙的錯誤來了,如上圖:
這是什么報錯???百度,google了好久,看到的是成片成片的英文解釋,幸好自己心理足夠強大,才從眾說紛紜中找到了解決辦法:打開SDK Manager,安裝上Google Repository,然后再運行react-native run-android,居然就好了(如果再不行的話,打開SDK Manager,裝上24版本的(這里看紅色的錯誤信息,缺少哪個版本的Android SDK Tools就安裝哪個版本),這樣子就肯定好了【親測有效】)
做完這些事情,將app順利安裝在手機上后,就會看到想要的啦:
相關的API都在文檔中:https://github.com/rebeccahughes/react-native-device-info
... componentWillMount() { console.log("222222222222222222"); let clientId = DeviceInfo.getUniqueID(); console.log("Device Unique ID", clientId); console.log("Device Name", DeviceInfo.getSystemName()); } ...
完美~
遇到諸如此類的問題后,就像以前老大幫忙解決問題一樣,換個角度多方面思考問題,這樣再難的問題總會解決掉。
PS(如果連接模擬器的話, Cannot read property 'uniqueId' of undefined,因此調試rn項目的時候,最好使用真機,這樣就會避免發生不可預知的bug):