ホームページ  >  記事  >  ウェブフロントエンド  >  js は、ネイティブ インターフェイスにメッセージを送信し、関数にジャンプするインターフェイスを実装します。

js は、ネイティブ インターフェイスにメッセージを送信し、関数にジャンプするインターフェイスを実装します。

高洛峰
高洛峰オリジナル
2016-12-05 16:10:381084ブラウズ

この記事の例では、メッセージを送信し、js インターフェイスからネイティブ インターフェイスにジャンプするための具体的なコードを共有します。具体的な内容は次のとおりです。

ステップ 1
アイデアで、rn の下にある ./Android/app を開きます。プロジェクト、このプロセスには時間がかかります。また、gradle の依存関係などをダウンロードする必要がある場合もあります。

ステップ 2
これは、ネイティブ アプリを作成するのと同じです。簡単にするために、次のように実装します。

ステップ 3

ReactContextBaseJavaModule を拡張するクラスを作成し、メッセージを受信します。このクラス。

具体的なコード:

public class TestActivity extends AppCompatActivity {
 
  private Button mBtGoBack;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    mBtGoBack = (Button) findViewById(R.id.bt_go_back);
    mBtGoBack.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        finish();
      }
    });
 
  }
}

ステップ 4

パッケージマネージャーを実装し、メッセージを受信するクラス ExampleInterface を登録します。

コードは次のとおりです:

public class ExampleInterface extends ReactContextBaseJavaModule {
 
  private ReactApplicationContext mRApplicationContext;
 
  public ExampleInterface(ReactApplicationContext reactContext) {
    super(reactContext);
    mRApplicationContext = reactContext;
  }
 
  //RN使用这个名称来调用原生模块的其他函数
  @Override
  public String getName() {
    return "ExampleInterface";
  }
  //必须写@ReactMethod,将其注册为能够被React调用的函数
  @ReactMethod
  public void HandlerMessage(String aMessage){
    Log.d("lt","====receive message from RN==="+aMessage);
     //这部分实现简单的跳转
    Intent intent = new Intent(mRApplicationContext,TestActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mRApplicationContext.startActivity(intent);
  }
 
}

ステップ 5

MainApplication にパッケージ管理クラス AnExampleReactPackage を追加します


ステップ 6

js インターフェイスで、メッセージを送信します。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。