Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

yilian發表於2020-03-04
Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

相信看過官方更新日誌的小夥伴都知道新版本的 flutterAndroid原生互動有一些改變,主要在以下部分

1.自定義的Plugin類需要實現 FlutterPlugin的介面,並實現以下兩個方法

       @Override
      public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { //註冊,等同於原來的registerWith
      final MethodChannel channel = new  MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "flutter_wx");
      channel.setMethodCallHandler(new FlutterWxPlugin());
  }       @Override
        public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
  }

2.獲取 Flutter傳遞過來的資料(方法名)需要實現 MethodCallHandler(和之前版本的一樣)

      @Override
      public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
      Log.d(TAG, "onMethodCall:" + activity);
      Toast.makeText(activity, "TestActivity", Toast.LENGTH_SHORT).show();      if (call.method.equals("getPlatformVersion")) {
        result.success("Android " + android.os.Build.VERSION.RELEASE);
      } else {
        result.notImplemented();
      }
  }

3.現在有一個需求就是需要在 onMethodCall方法中獲取activity物件,新版本給我們提供了新的介面讓我更好的來處理 PluginActivity的一些互動,所以我們實現 ActivityAware這個介面,重寫下面的方法,在 onAttachedToActivity中我們可以透過 binding.getActivity()獲取當前的 activity物件,然後賦給我們定義的全域性變數,這個時候問題來了,我們在 onMethodCall方法中得到的 activity的值始終為 null

      @Override
  public void onAttachedToActivity(ActivityPluginBinding binding) {
      Log.d(TAG, "onAttachedToActivity");      this.activity = binding.getActivity();
  }  @Override
  public void onDetachedFromActivityForConfigChanges() {
  }  @Override
  public void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding) {
  }  @Override
  public void onDetachedFromActivity() {
  }

4.解決方法,修改  onAttachedToEngine方法中的 channel.setMethodCallHandler(new FlutterWxPlugin())為  channel.setMethodCallHandler(this);

   @Override
      public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { //註冊,等同於原來的registerWith
      final MethodChannel channel = new  MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "flutter_wx");
      channel.setMethodCallHandler(this);//修改此處為this
  }

5.總結,具體問題的原因還沒有細研究,當 Plugin初始化的時候複寫的方法會執行兩次。期待官方的解決辦法。

flutter作為跨平臺的救星,很多朋友想要開始卻不知道從哪裡開始,這裡給大家分享一套從入門到進階的學習影片以及整理好的學習文件。
想要學習影片的朋友可以 點選我 詳細瞭解哦

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

一共有19個PDF文件可供學習,需要的朋友私信我【flutter】或者評論留言即可免費領取

01在Windows上搭建Flutter開發環境

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

02配置編輯器

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

03 Flutter 從我們的模板建立一個新的Flutter應用程式

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

04編寫您的第一個 Flutter App

image
image

05 Flutter中構建佈局

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

06 Flutter Widget框架

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

07 設計基礎之主題共享顏色和字型樣式

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

08 顯示網上的圖片

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

09 List集合

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

10 List處理點選和手勢

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

11 例項程式之AppBar

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

12 示例程式之選項卡式的AppBar

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

13 如何學習 Flutter 編譯Android專案

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

14 Flutter之資源載入

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

15 使用Flutter IDE

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

16 Flutter之使用熱過載

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

17 Flutter之除錯 Flutter App

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

18 Flutter 之釋出Android版APP

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)

19 Flutter之釋出的IOS版APP

Flutter1.12 升級後有什麼問題?型別盤點(附學習文件)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2678527/,如需轉載,請註明出處,否則將追究法律責任。

相關文章