flutter使用NFC完整範例

在pubspec.yaml文件中,加入nfc插件:
dependencies:
nfc: ^1.0.0

創建一個新的Flutter應用程式,並在main.dart文件中添加以下程式碼:
import ‘package:flutter/material.dart’;
import ‘package:nfc/nfc.dart’;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ‘NFC Demo’,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: ‘NFC Demo Home Page’),
);
}
}

class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);

final String title;

@override
_MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State {
NfcData _nfcData = NfcData();

@override
void initState() {
super.initState();
_initNfc();
}

Future _initNfc() async {
try {
Nfc.onTag.listen((NfcData data) {
setState(() {
_nfcData = data;
});
});
} on Exception catch (ex) {
print(‘Error: $ex’);
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
‘NFC Data:’,
),
Text(
‘${_nfcData.id ?? ‘No data found’}’,
style: Theme.of(context).textTheme.headline4,
),
],
),
),
);
}
}

運行應用程式,在NFC-enabled裝置上放置NFC標籤,應用程式應該會顯示NFC標籤的ID。
這只是一個簡單的範例,您可以使用NFC插件的其他功能來擴展應用程式,例如寫入NFC標籤等。

Flutter判斷是否連接網路及目前網路類型

pubspec.yaml → dependencies:加入connectivity: ^0.4.2

判斷是否連接網路
import ‘package:connectivity/connectivity.dart’;
Future isConnected() async {
var connectivityResult = await (Connectivity().checkConnectivity());
return connectivityResult != ConnectivityResult.none;
}

取得連接網路類型
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// 行動網路
} else if (connectivityResult == ConnectivityResult.wifi) {
// wifi無線網路
}

https://cloud.tencent.com/developer/article/1781635

Flutter使用webview 方式及問題排除

1.pub.dev安裝webview_flutter 3.0.4版本
https://pub.dev/packages/webview_flutter/install

2.到build.gradle將minSdkVersion改成19、targetSdkVersion改成32

顯示程式碼
import ‘package:webview_flutter/webview_flutter.dart’;
class WebViewWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return Scaffold(
body:WebView(
initialUrl: ‘https://www.cch.org.tw/’,
javascriptMode: JavascriptMode.unrestricted,
),
);
}

Flutter要怎麼呼叫其它APP

external_app_launcher 3.1.0
https://stackoverflow.com/questions/55771211/can-any-one-tell-me-how-to-open-another-app-using-flutter

onPressed: () {
LaunchApp.openApp(
androidPackageName: ‘PackageName’,
iosUrlScheme: ‘pulsesecure://’,
appStoreLink: ‘itms-apps://itunes.apple.com/us/app/pulse-secure/id945832041’,
);