網上很多公司公布了使用RN的一些經驗,目前看來大多數公司還是將RN作為單獨頁面嵌入到原生程序當中,至于為何沒有完全切換到RN,個中原因,還不是很明了。
作為一個初學者,只針對技術本身,還是希望能親身體驗一下使用RN完全開發一款應用,會存在哪些問題。
如果完全使用RN開發,我覺得有一點肯定是繞不過去的,那就是RN與Native程序中資源的共享,目前看,Native想使用RN中的資源(如:圖片)好像是不可能的。而如果RN也不能使用Native程序中的圖片,那么在開發過程中就會有非常大的限制。
在網上找了很多資料,包括React Native中文網上介紹的,<Image>標簽加載圖片的方式只有三種:
<Image source={require('./img/icon.jpg')}/>
使用相對路徑加載RN工程中的圖片資源
<Image source={{uri: 'http://..................*.jpg'}}/>
使用url地址加載網上的圖片資源
<Image source={{uri: 'ic_launcher'}}/>
加載Native程序中drawable目錄下的圖片資源
但是如何加載Native程序下載到本地的圖片呢,或者是/data/data/下應用自己的緩存文件呢,找了很多資料都沒看到,實際上很簡單,使用下面的方式就可以了:
<Image source={{uri: 'file://' + path}}/>
path即為本地圖片文件的絕對路徑
至此,就找到了一種共享本地圖片資源到RN的方式,盡管很麻煩,但是起碼是可行的。