什么是JSBridge
绝大部分混合开发都是将H5运营在WebView中, 而WebView只是一个浏览器内核, JS的运营必然在一个权限受限的沙箱中, 对系统能力没有访问权限, 如无法访问文件系统, 无法使用蓝牙等. 为了解决这个问题, 混合开发框架都会集成一些访问系统的API, 然后将这些API暴露给WebView. 这样, WebView就是JS和原生API之间通信的桥梁, 主要负责JS和原生API之间传递消息, 而消息的传递必须遵循一个标准, 这个标准规定了消息的格式和含义. 我们将依赖于WebView的用于在JS和原生之间通信并实现了某种消息传输协议的工具称之为WebView JavaScript Bridge 简称JsBridge. JsBridge也是混合开发的核心
python DateTime 怎么获取前一天
datetime+datetime.imtdelta(-1)
python DateTime格式化日期
datetime.strptime("%Y-%m-%d"
Flutter实现选项卡
Flutter实现选项卡其实非常简单, 在AspectRatio控件的body中实现TabBarView即可, 如下:
Widget _buildCharts() {
return new AspectRatio(
aspectRatio: 4 / 3,
child: new Scaffold(
appBar: new TabBar(
labelColor: Color.fromRGBO(10, 1, 255, 1),
isScrollable: true,
labelPadding: EdgeInsets.symmetric(horizontal: 2.0),
controller: _tabController,
tabs: chartsTypes.map((ChartsType chartsType) {
return new Tab(
text: chartsType.title,
);
}).toList(),
),
body: new TabBarView(
controller: _tabController,
children: chartsTypes.map((ChartsType chartsType) {
return new charts.TimeSeriesChart(_createSampleData(chartsType.type),
animate: false);
}).toList(),
),
));
}
Flutter实现ListView
更简单, 实现ListView控件科技. 如下:
Widget _buildFeedMonitorList() {
return new ListView.builder(
itemCount: widget.loading ? 0 : _list.length + 2,
itemBuilder: (context, i) {
print("i:$i");
if (i == 0) {
return _buildHeader(_feed);
} else if (i == 1) {
return _buildCharts();
} else {
FeedMonitor monitor = FeedMonitor.fromJson(_list[i - 2]);
return _buildRow(monitor);
}
});
}