本文將簡(jiǎn)單梳理一下 iOS 工程接入的 Flutter Boost 的流程,以作為前文的補(bǔ)充。
成都創(chuàng)新互聯(lián)公司專注于南江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站建設(shè)。南江網(wǎng)站建設(shè)公司,為南江等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
flutter_application_path = '../flutter_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target 'FlutterHybridiOS' do
install_all_flutter_pods(flutter_application_path)
end
接著在工程根目錄下運(yùn)行 pod install ,即可集成上 Flutter Module。看到我們的 Pods 中多了以下幾個(gè)模塊,即說(shuō)明集成成功。
接著在工程根目錄下運(yùn)行 pod install ,即可集成上 Flutter Module??吹轿覀兊?Pods 中多了以下幾個(gè)模塊,即說(shuō)明集成成功。
這一塊直接參照 Flutter Boost 官方提供的 example 就好了:
PlatformRouterImp.h:
PlatformRouterImp.m:
可以看到,F(xiàn)lutter Boost 支持常規(guī) push,也支持打開(kāi)模態(tài)彈窗,也支持手動(dòng) pop。
AppDelegate.h:
AppDelegate.m:
同樣的,這里可在 Native 端用兩種不同的方式去打開(kāi)我們?cè)?Flutter Module 中注冊(cè)好的路由名。
至此,我們成功在 iOS 工程中接入了 Flutter Boost,那就開(kāi)啟我們的混編之旅吧~
1.當(dāng)我們使用flutter開(kāi)發(fā)的時(shí)候 頁(yè)面里面只有 initState 與dispose方法.
initState 只有進(jìn)入頁(yè)面的時(shí)候調(diào)用,并且在二級(jí)頁(yè)面返回的時(shí)候 是不會(huì)有調(diào)用的
dispose 當(dāng)頁(yè)面銷毀的時(shí)候 才會(huì)調(diào)用,你進(jìn)入二級(jí)頁(yè)面是不會(huì)調(diào)用的
綜上分析者兩個(gè)方法沒(méi)有辦法友盟頁(yè)面統(tǒng)計(jì)分享上報(bào)
2.我們可以使用 NavigatorObserver來(lái)解決
首先新建一個(gè) 繼承與NavigatorObserver的類 實(shí)現(xiàn)NavigatorObserver 的方法就可以了
最后我們需要再 MaterialApp里面的navigatorObservers添加監(jiān)聽(tīng)就可以了
這時(shí)候 會(huì)有一個(gè)問(wèn)題點(diǎn)擊tabbar幾個(gè)主頁(yè)是沒(méi)有統(tǒng)計(jì)的 ,我們也需要再tabbar的點(diǎn)擊方法來(lái)進(jìn)行處理
flutter加載h5很卡的解決方法如下:
一種臨時(shí)解決方案,在切換動(dòng)畫(huà)加載完畢后,再去構(gòu)造 WebView,這樣從用戶角度上看,就不會(huì)有路由切換動(dòng)畫(huà)的卡頓了。class WebViewPage extends StatefulWidget {undefined
final String uri;
WebViewPage({undefined
@required this.uri,
}) : assert(uri != null);
@override
_WebViewPageState createState() = _WebViewPageState();
}
class _WebViewPageState extends State {undefined
WebViewController _controller;
bool _animationCompleted = false;
@override
Widget build(BuildContext context) {undefined
// 主要是下面的代碼
var route = ModalRoute.of(context);
if (route != null !_animationCompleted) {undefined
void handler(status) {undefined
if (status == AnimationStatus.completed) {undefined
route.animation.removeStatusListener(handler);
setState(() {undefined
_animationCompleted = true;
});
}
}
route.animation.addStatusListener(handler);
}
return Scaffold(
title: widget.title,
backgroundColor: Colors.white,
body: _animationCompleted
? WebView(
initialUrl: 'about:blank',
onWebViewCreated: (WebViewController webViewController) {undefined
_controller = webViewController;
_loadHtmlFromAssets();
},
)
: Container(),
);
}
_loadHtmlFromAssets() async {undefined
var uri = Uri.dataFromString(
await rootBundle.loadString(widget.uri),
mimeType: 'text/html',
encoding: Encoding.getByName('utf-8'),
).toString();
_controller.loadUrl(uri);
}
}
Fluent是目前國(guó)際上比較流行的商用CFD軟件包,在美國(guó)的市場(chǎng)占有率為60%,凡是和流體、熱傳遞和化學(xué)反應(yīng)等有關(guān)的工業(yè)均可使用。
它具有豐富的物理模型、先進(jìn)的數(shù)值方法和強(qiáng)大的前后處理功能,在航空航天、汽車設(shè)計(jì)、石油天然氣和渦輪機(jī)設(shè)計(jì)等方面都有著廣泛的應(yīng)用。
FLUENT軟件包含基于壓力的分離求解器、基于密度的隱式求解器、基于密度的顯式求解器,多求解器技術(shù)使FLUENT軟件可以用來(lái)模擬從不可壓縮到高超音速范圍內(nèi)的各種復(fù)雜流場(chǎng)。
FLUENT軟件包含非常豐富、經(jīng)過(guò)工程確認(rèn)的物理模型,由于采用了多種求解方法和多重網(wǎng)格加速收斂技術(shù),因而FLUENT能達(dá)到最佳的收斂速度和求解精度。
靈活的非結(jié)構(gòu)化網(wǎng)格和基于解的自適應(yīng)網(wǎng)格技術(shù)及成熟的物理模型,可以模擬高超音速流場(chǎng)、傳熱與相變、化學(xué)反應(yīng)與燃燒、多相流、旋轉(zhuǎn)機(jī)械、動(dòng)/變形網(wǎng)格、噪聲、材料加工等復(fù)雜機(jī)理的流動(dòng)問(wèn)題。
很有可能是你的路由器的默認(rèn)地址不是192.168.1.1。
你可以從路由器的底部看看進(jìn)入路由器的地址是不是192.168.1.1。注意:有的路由器默認(rèn)打開(kāi)地址是192.168.0.1。