RN如何調用原生應用莱衩。RN里有一個api 叫 Linking 爵嗅。這個模塊讓我們可以輕松調用原生應用。實現(xiàn)電話笨蚁,瀏覽器睹晒,地圖,郵箱等括细。
官方文檔 ? http://reactnative.cn/docs/0.43/linking.html
處理鏈接:
如果你不需要處理監(jiān)聽,就直接進行下面的操作
1览濒、安卓不需要環(huán)境配置呆盖。。贷笛。
2应又、ios的環(huán)境需要配置,參考文檔:http://reactnative.cn/docs/0.43/linking-libraries-ios.html
需要在*AppDelegate.m文件中添加:
這里可以選擇自動和手動。自動參考文檔即可杉允,筆者比較喜歡手動邑贴,因為這樣如果發(fā)生配置錯誤,可以查看原因叔磷。
第一步
如果該庫包含原生代碼拢驾,那么在它的文件夾下一定有一個.xcodeproj文件。 把這個文件拖到你的XCode工程下(通常拖到XCode的Libraries分組里)
第二步
點擊你的主工程文件改基,選擇Build Phases繁疤,然后把剛才所添加進去的.xcodeproj下的Products文件夾中的靜態(tài)庫文件(.a文件),拖到Link Binary With Libraries組內(nèi)秕狰。
第三步
不是所有的庫都需要進行這個步驟稠腊,你需要考慮的問題在于:
我需要在編譯的期間了解庫的內(nèi)容嗎?
這個問題的意思是鸣哀,你是需要在原生代碼中使用這個庫架忌,還是只需要通過JavaScript訪問?如果你只需要通過JavaScript訪問這個庫我衬,你就可以跳過這步了叹放。
這一步驟對于我們隨React Native發(fā)布的大部分庫來說都不是必要的饰恕,但有兩個例外是PushNotificationIOS ??和 ??LinkingIOS ?。
以PushNotificationIOS為例井仰,你需要在AppDelegate每收到一條推送通知之后埋嵌,調用庫中的一個方法。
這種情況下我們需要能夠訪問到庫的頭文件俱恶。為了能夠順利打包雹嗦,你需要打開你的工程文件,選擇Build Settings速那,然后搜索Header Search Paths俐银,然后添加庫所在的目錄(如果它還有像React這樣的子目錄需要包含,注意要選中recursive選項)
都完成之后就可以在代碼里實現(xiàn)了端仰。
之后在你想要實現(xiàn)的地方調用這個組件:
注意:這里的tel 不能丟捶惜。否則功能實現(xiàn)不了。
mailto 郵箱? https 網(wǎng)頁 smsto 短信荔烧。
代碼實現(xiàn)比較簡單吱七,就不貼出github的地址了。