RN如何調用原生應用。RN里有一個api 叫 Linking 。這個模塊讓我們可以輕松調用原生應用。實現電話,瀏覽器,地圖,郵箱等。
官方文檔 ? http://reactnative.cn/docs/0.43/linking.html
處理鏈接:
如果你不需要處理監聽,就直接進行下面的操作
1、安卓不需要環境配置。。。
2、ios的環境需要配置,參考文檔:http://reactnative.cn/docs/0.43/linking-libraries-ios.html
需要在*AppDelegate.m文件中添加:
這里可以選擇自動和手動。自動參考文檔即可,筆者比較喜歡手動,因為這樣如果發生配置錯誤,可以查看原因。
第一步
如果該庫包含原生代碼,那么在它的文件夾下一定有一個.xcodeproj文件。 把這個文件拖到你的XCode工程下(通常拖到XCode的Libraries分組里)
第二步
點擊你的主工程文件,選擇Build Phases,然后把剛才所添加進去的.xcodeproj下的Products文件夾中的靜態庫文件(.a文件),拖到Link Binary With Libraries組內。
第三步
不是所有的庫都需要進行這個步驟,你需要考慮的問題在于:
我需要在編譯的期間了解庫的內容嗎?
這個問題的意思是,你是需要在原生代碼中使用這個庫,還是只需要通過JavaScript訪問?如果你只需要通過JavaScript訪問這個庫,你就可以跳過這步了。
這一步驟對于我們隨React Native發布的大部分庫來說都不是必要的,但有兩個例外是PushNotificationIOS ??和 ??LinkingIOS ?。
以PushNotificationIOS為例,你需要在AppDelegate每收到一條推送通知之后,調用庫中的一個方法。
這種情況下我們需要能夠訪問到庫的頭文件。為了能夠順利打包,你需要打開你的工程文件,選擇Build Settings,然后搜索Header Search Paths,然后添加庫所在的目錄(如果它還有像React這樣的子目錄需要包含,注意要選中recursive選項)
都完成之后就可以在代碼里實現了。
之后在你想要實現的地方調用這個組件:
注意:這里的tel 不能丟。否則功能實現不了。
mailto 郵箱? https 網頁 smsto 短信。
代碼實現比較簡單,就不貼出github的地址了。