我在创建应用程序时降低了 android sdk 的版本。 30 -> 26
那么在模拟器中有效的方法在我的手机上无效。 让我知道原因。
但我的真实设备无法正常工作:(
(android sdk 版本也是 26)
我认为这可能不是 Sdk 的问题。 从 30 变为 26 之前是一样的。
我的代码:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Fetch(),
);
}
}
class Fetch extends StatefulWidget {
@override
_FetchState createState() => _FetchState();
}
class _FetchState extends State<Fetch> {
//List<String> list = List();
String txt = "";
void _getData() async {
String str = "https://yongwon-h.gne.go.kr/yongwon-h/main.do#";
Uri uri = Uri.parse(str);
final response = await http.get(uri);
dom.Document document = parser.parse(response.body);
//final elements = document.getElementsByTagName('h1');
//txt = document.getElementsByTagName('h1')[0].innerHtml.replaceAll("<span>", "").replaceAll("<"+"/"+"span>", "");
txt = document
.getElementsByClassName('meal_list')[0]
.innerHtml
.replaceAll("dietDiv;", "");
print(txt);
setState(() {
print(txt);
/* list = elements
.map((element) =>
element.getElementsByTagName("img")[0].attributes['src'])
.toList();*/
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: kPrimaryColor,
actions: <Widget>[
IconButton(
icon: Icon(Icons.refresh),
onPressed: () {
_getData();
},
),
],
),
body: Container(
child: Column(
children: <Widget>[
Text(
'음식 / 알레르기 번호\n',
style: TextStyle(
fontFamily: 'cage',
fontSize: 25,
color: Colors.black,
fontWeight: FontWeight.bold),
),
Positioned(
bottom: 0,
left: 0,
child: SizedBox(
height: MediaQuery.of(context).size.height * 0.7,
width: MediaQuery.of(context).size.width * 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(
horizontal: kDefaultPadding),
child: Text(
txt,
style: TextStyle(
fontFamily: 'cage',
fontSize: 25,
color: Colors.black,
fontWeight: FontWeight.bold,
),
),
),
Spacer(),
],
),
),
),
Text(
'만약 급식이 장시간동안 불러와 지지 않는다면, \n새로고침을 눌러주세요.',
style: TextStyle(
fontFamily: 'cage',
fontSize: 20,
fontWeight: FontWeight.bold),
),
],
),
),
);
}
}