我<select>在Android平板电脑上使用HTML 标签在React Native的WebView中遇到了一个非常奇怪的问题.出于某种原因,点击渲染<select>按钮不会打开选项列表.
这只发生在Android平板电脑上,无论Android版本如何.但是,在Android智能手机上,不会发生此错误,并且选项列表会按预期打开.
为了重现这个bug,我创建了一个简单的演示应用程序:https://github.com/huonderv/react-native-webview-html-select-bug.
重要的代码如下:
index.android.js
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
WebView
} from 'react-native';
export default class WebViewProject extends Component {
render() {
return (
<WebView
style={styles.container}
source={{ uri: 'file:///android_asset/simpleselect.html'}}
startInLoadingState={true}
/>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
});
AppRegistry.registerComponent('WebViewProject', () => WebViewProject);
Run Code Online (Sandbox Code Playgroud)
simpleselect.html
<!DOCTYPE html>
<html>
<body>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option> …Run Code Online (Sandbox Code Playgroud) javascript android android-webview react-native react-native-android
假设我有两个页面,Page1 和 Page2 包含一个英雄。在 Page2 中,我想在 Hero 动画完成后开始一个 Widget 动画。
是否可以通过回调在 Page2 中获得有关 Hero 动画状态的通知?
到目前为止,我发现的唯一解决方法是向 Widget 动画添加延迟,以避免它在 Hero 动画完成之前开始:
class Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) => Container(
child: Hero(
tag: "hero-tag",
child: IconButton(
icon: Icon(Icons.person),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => Page2(),
));
}),
),
);
}
class Page2 extends StatefulWidget {
@override
_Page2State createState() => _Page2State();
}
class _Page2State extends State<Page2> with TickerProviderStateMixin {
AnimationController _controller;
Animation _fabAnimation;
@override
void initState() …Run Code Online (Sandbox Code Playgroud) 编译针对快速启动、快速执行和小包大小进行了优化。
针对小封装尺寸进行优化究竟意味着什么?
对于网络应用程序,文档指出:
构建被缩小,并且已经执行了摇树。
在发布模式下构建应用程序时,Flutter 是否对 Android/iOS 的 Dart 代码执行死代码消除?如果是这样,如何?
评论:在 DevTools 中apk使用Deeper analysis
分析生成的 Android 版本时,似乎没有包含死代码。所以至少对于 Android 来说,Flutter 似乎在发布模式下执行死代码消除。
使用 GitLab CI/CD 一次性部署所有 Firebase 功能非常简单(如何利用 GitLab CI/CD for Google Firebase):
deploy-functions:
stage: deploy
script:
- cd functions
- npm install
- cd ..
- firebase deploy --only functions --token $FIREBASE_TOKEN
only:
refs:
- master
changes:
- functions/**/*
Run Code Online (Sandbox Code Playgroud)
然而,当“部署大量函数时,您可能会超出标准配额并收到 HTTP 429 或 500 错误消息。要解决此问题,请以 10 个或更少为一组部署函数。” (请参阅管理功能部署和运行时选项)。
借助 Firebase CLI,可以使用 部署特定功能(例如addMessage和) 。makeUppercasefirebase deploy --only functions:addMessage,functions:makeUppercase
现在,有没有一种简单的方法可以自动检测哪些功能受到代码库更改的影响,并构建一个gitlab-ci.yml仅部署相应功能的系统?