首頁  >  文章  >  web前端  >  React-native之Android原生開發詳解

React-native之Android原生開發詳解

小云云
小云云原創
2018-01-17 17:03:131477瀏覽

本文主要介紹了React-native橋接Android原生開發詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

在開發RN的漫漫長河中,早晚有那麼一天要接觸到安卓的原生開發,筆者來介紹一下其中的酸甜苦辣.對於一個不懂android的小白來說,剛開始有點難,不過都是萬事開頭難.語言是想通的,原理也是大徑若一.

#開發過程中是要集成高德的導航功能,沒有找到好的輪子的,只要寫原生代碼,然後在用JS去調用原生的導航模組.

#首先註冊模組

其意義在與將類註冊到RN中,才能用JS去呼叫


public class AnExampleReactPackage implements ReactPackage {
  @Override
  public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    return Collections.emptyList();
  }
  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
    List<NativeModule> modules = new ArrayList<>();

    modules.add(new NaviActivity(reactContext));
    return modules;
  }
}

其中modules.add(new NaviActivity(reactContext));意義就是新增一個安卓原生的activity模組

這個模組可以定義方案,RN可以直接呼叫(方法上必須宣告了@ReactMethod才可以)


@ReactMethod
  public void showFengMap(String mapID){
    Activity currentActivity = getCurrentActivity();
    Intent intent = new Intent(currentActivity, 页面名.class);
    currentActivity.startActivity(intent);
  }

筆者其中的到嗎是跳到其他頁面,這裡也可以做一些其他的操作.例如直接去分享

聲明

#在安卓程式的app內的MainApplication內,


@Override
  protected List<ReactPackage> getPackages() {
   return Arrays.<ReactPackage>asList(
     new MainReactPackage(),
      new AnExampleReactPackage()
   );
  }

加入剛剛註冊過的套件名稱

JS呼叫原生程式碼


import { NativeModules } from &#39;react-native&#39;;

export default NativeModules.NaviActivity;

筆者這裡寫了一個untils/CommonAndroidUntils.js,在需要用的頁面直接引入這個js檔案


CommonAndroidUntils.show();

實現跳轉.

集成高德導航

對於一個小白直接去在android studio內集成高德地圖剛開始還是有點難度的.不過理解之後感覺還好.簡單些一下遇到的問題,提醒自己,幫助他人

直接拖入的.jar語音包不能引入

#解決方法是右鍵.jar包,有將.jar引入的選項點擊,等待同步即可.

其餘的都是些小問題,根據demo以及文檔輕鬆解決的不值一提了.

##相關推薦:


#React-Native全球化多語言切換工具庫react-native-i18n詳解

React-Native中props用法詳解

# React-native 中Image控制項的簡介

以上是React-native之Android原生開發詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn