欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter交互,flutter交互特效

Flutter webview 交互

WebView(

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、成都網(wǎng)站設計、化州網(wǎng)絡推廣、微信小程序、化州網(wǎng)絡營銷、化州企業(yè)策劃、化州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供化州建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:chinadenli.net

initialUrl: url,

javascriptMode: JavascriptMode.unrestricted,

javascriptChannels: {

JavascriptChannel(

name: "AppNotifyInitSuccess", //JS調(diào)用AppNotifyInitSuccess.

onMessageReceived: (JavascriptMessage message) {

_jsCallBackJson = message.message;

showAppToast("獲取JS回傳數(shù)據(jù): ${message.message}");

}),

},

onWebViewCreated: (WebViewController controller) {

_webViewController = controller;

},

),

//Flutter 主動和WebView通信.

_webViewController.evaluateJavascript("updateAppDataInfo('Flutter通過JS修改')");

flutter WebView 及其交互

flutter 部分??

Container(

? height: 200,

? clipBehavior: Clip.none,

? child: WebView(

? ? initialUrl: 'about:blank',

? ? onWebViewCreated: (WebViewController webViewController) {

? ? ? _webViewController = webViewController;

? ? ? _loadHtmlFromAssets();

? ? },

? ? javascriptMode: JavascriptMode.unrestricted,

? ? javascriptChannels: JavascriptChannel[

? ? ? _alertJavascriptChannel(context),

? ? ].toSet(),

? ),

)

JavascriptChannel _alertJavascriptChannel(BuildContext context) {

return JavascriptChannel(

? ? name: 'Toastxxx',

? ? onMessageReceived: (JavascriptMessage message) {

? ? ? print('============****${message.message}');

? ? });

}

HTML部分

button onclick="callFlutter()"callFlutter/button

script

function callFlutter() {

? ? Toastxxx.postMessage("JS調(diào)用了Flutter");

}

/script

flutter_inappbrowser和h5交互

需求,app中使用webview和h5交互,根據(jù)h5發(fā)過來的消息,在屏幕上展示flutter組件,并且可以發(fā)送消息給h5。

首先使用的組件是flutter_WebView_plugin,這個組件不能嵌套flutter組件,所以放棄這個組件。

flutter_inappbrowser 可以實現(xiàn)組合布局, 所以選用了此庫, GitHub鏈接

[

flutter與原生交互方法和底層原理分析

1.環(huán)境準備, 參考鏈接

2.添加國內(nèi)環(huán)境配置: 參考鏈接

3.新建

name: String類型,代表Channel的名字,也是其唯一標識符。

messager:BinaryMessenger類型,代表消息信使,是消息的發(fā)送與接收的工具。

codec: MessageCodec類型或MethodCodec類型,代表消息的編解碼器。

fluuter中的MessageCodec用于二進制格式數(shù)據(jù)與基礎數(shù)據(jù)之間的編解碼。BasicMessageChannel所使用的編解碼器就是MessageCodec。

iOS中,名稱為FlutterMessageCodec,是一個協(xié)議,定義了兩個方法:encode接收一個類型為id的消息,將其編碼為NSData類型,而decode接收NSData類型消息,將其解碼為id類型數(shù)據(jù)。

MessageCodec有多種不同的實現(xiàn):

與MessageCodec不同的是,MethodCodec用于MethodCall對象的編解碼,一個MethodCall對象代表一次從Flutter端發(fā)起的方法調(diào)用。MethodCall有2個成員變量:String類型的method代表需要調(diào)用的方法名稱,通用類型(Android中為Object,iOS中為id)的arguments代表需要調(diào)用的方法入?yún)?/p>

由于處理的是方法調(diào)用,故相比于MessageCodec,MethodCodec多了對調(diào)用結(jié)果的處理。當方法調(diào)用成功時,使用encodeSuccessEnvelope將result編碼為二進制數(shù)據(jù),而當方法調(diào)用失敗時,則使用encodeErrorEnvelope將error的code、message、detail編碼為二進制數(shù)據(jù)

MethodCodec有兩種實現(xiàn):

Flutter 使用插件實現(xiàn)雙屏交互

本文將為大家講解如何通過pub庫插件快速實現(xiàn)Flutter應用在雙屏Android設備上交互通信。

插件地址: flutter_subscreen_plugin

雙屏插件實現(xiàn)原理: FlutterPlugin 實現(xiàn)雙屏

主屏上的UI,我們添加一個按鈕,點擊生成一個隨機數(shù),發(fā)送給副屏顯示,用于驗證主屏與副屏的通信交互:

副屏ui上我們在initState中監(jiān)聽主屏給副屏的消息流,并將監(jiān)聽到的數(shù)據(jù)展示在文本上:

完成上述步驟,簡單的demo就做好了,如下是demo在實體設備的運行效果圖:

網(wǎng)站題目:flutter交互,flutter交互特效
文章地址:http://chinadenli.net/article19/dseihgh.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名定制開發(fā)靜態(tài)網(wǎng)站外貿(mào)建站Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司