Flutter-writing-andriod-specific-code
Flutter-Android固有のコードを書く
Flutterは、プラットフォーム固有の機能にアクセスするための一般的なフレームワークを提供します。 これにより、開発者はプラットフォーム固有のコードを使用して_Flutter_フレームワークの機能を拡張できます。 フレームワークを介して、カメラ、バッテリーレベル、ブラウザなどのプラットフォーム固有の機能に簡単にアクセスできます。
プラットフォーム固有のコードにアクセスする一般的な考え方は、単純なメッセージングプロトコルを使用することです。 フラッターコード、クライアント、プラットフォームコード、およびホストは、共通のメッセージチャネルにバインドします。 クライアントは、メッセージチャネルを介してホストにメッセージを送信します。 ホストはメッセージチャネルをリッスンし、メッセージを受信して必要な機能を実行し、最後にメッセージチャネルを介してクライアントに結果を返します。
プラットフォーム固有のコードアーキテクチャは、以下のブロック図に示されています-
メッセージングプロトコルは、数値、文字列、ブール値などのJSONのような値のバイナリシリアル化をサポートする標準メッセージコーデック(StandardMessageCodecクラス)を使用します。シリアル化と逆シリアル化は、クライアントとホストの間で透過的に機能します。
_Android SDK_を使用してブラウザを開く簡単なアプリケーションを作成し、その方法を理解しましょう
- Androidスタジオで新しいFlutterアプリケーション_flutter_browser_app_を作成します
- main.dartコードを以下のコードに置き換えます-
- ここでは、ブラウザーを開いてそのonPressedメソッドをnullに設定する新しいボタンを作成しました。
- 今、次のパッケージをインポートします-
- ここで、services.dartには、プラットフォーム固有のコードを呼び出す機能が含まれています。
- MyHomePageウィジェットで新しいメッセージチャネルを作成します。
- プラットフォーム固有のメソッドである_openBrowserメソッド、メッセージチャネルを介したopenBrowserメソッドを呼び出すメソッドを記述します。
ここでは、platform.invokeMethodを使用してopenBrowserを呼び出しています(次の手順で説明します)。 openBrowserには、特定のURLを開くための引数urlがあります。
- RaisedButtonのonPressedプロパティの値をnullから_openBrowserに変更します。
- MainActivity.java(androidフォルダ内)を開き、必要なライブラリをインポートします-
- メソッドを作成し、ブラウザを開くopenBrowser
- 今、MainActivityクラスでチャンネル名を設定します-
- onCreateメソッドでメッセージ処理を設定するAndroid固有のコードを記述します-
ここでは、MethodChannelクラスを使用してメッセージチャネルを作成し、MethodCallHandlerクラスを使用してメッセージを処理しました。 onMethodCallは、メッセージを確認することで正しいプラットフォーム固有のコードを呼び出す実際のメソッドです。 onMethodCallメソッドは、メッセージからURLを抽出し、メソッド呼び出しがopenBrowserの場合にのみopenBrowserを呼び出します。 それ以外の場合、notImplementedメソッドを返します。
アプリケーションの完全なソースコードは次のとおりです-
アプリケーションを実行し、「ブラウザーを開く」ボタンをクリックすると、ブラウザーが起動していることがわかります。 ブラウザアプリ-ホームページは、ここのスクリーンショットに示すとおりです-