Platformview是flutter提供的壹個小部件,可以嵌入到Android和iOS平臺的原生視圖中。
在我們的實際開發中,遇到了壹些flutter官方沒有提供的插件,我們可以創建並編寫插件來實現壹些功能。但是原生視圖會屏蔽flutter中的widgets,比如妳要使用高德地圖sdk、視頻播放器、直播等原生控件,就不能很好的與flutter項目集成。
1,info.plist文件設置
2.原生組件Platformview在ios端實現,提供原生視圖。
3.在ios端創建PlatformViewFactory,生成PlatformView。
4.ios創建FlutterPlugin來註冊原生組件。
5.顫振平臺嵌入原生視圖。
目前iOS端的UiKitView只是預覽狀態,默認不支持。需要手動打開開關,在info.plist文件中添加壹行io . flute . embedded _ views _ preview為true。
創建FlutterMapView類並實現FlutterPlatformView協議
FlutterMapView.h
FlutterMapView.m
FlutterMapFactory.h
FlutterMapFactory.m
FlutterMapPlugin.h
FlutterMapPlugin.m
請在高德開放平臺控制臺申請IOSKY。
註意:捆綁包標識符需要與申請時填寫的標識符相同。
映射所依賴的庫如下所示:
基本SDK mapfoundationkit。結構
第壹步:將解壓後的MAMapKit.framework文件復制或拖拽到項目文件夾中,在左側目錄中選擇項目名稱,點擊“Targets-> ”;構建階段->;在Link Binary With Libaries中點擊“+”按鈕,在彈出窗口中點擊“Add Other”按鈕,在項目目錄中選擇MAMapKit.framework文件添加到項目中。
不要忘記將AMapFoundationKit添加到項目中。
三維地圖的正確配置如下圖所示:
需要導入的資源文件有:AMap.bundle,其中:AMap.bundle在MAMapKit.framework包中,AMap.bundle資源文件中存儲了定位、默認pin註釋視圖等圖片,可以用於開發。
在左側目錄中選擇項目名稱,在右鍵菜單中選擇“將文件添加到項目名稱”,從MAMapKit.framework中選擇AMap.bundle文件,選中“如果需要,復制項目”復選框,然後單擊“添加”按鈕將資源文件添加到項目中。
運行成功。。。