日本語 | English
Flutter用のライブラリです。
pubspec.yamlに以下の内容を追加してください。
dependencies:
browser_id:
git:
url: https://github.com/miyamoto-hai-lab/browser-id.git
path: flutter追加出来たら以下を実行します。
flutter pub getimport 'package:flutter/material.dart';
import 'package:browser_id/browser_id.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: FutureBuilder<String?>(
future: _getBrowserId(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text('Browser ID: ${snapshot.data}');
} else {
return const CircularProgressIndicator();
}
},
),
),
),
);
}
Future<String?> _getBrowserId() async {
try {
final browser = Browser(appName: "my_experiment_app");
return await browser.id;
} catch (e) {
debugPrint('Error getting browser ID: $e');
return null;
}
}
}まず最初にBrowserIDクラスのインスタンスを生成します。 実験アプリケーションの名前を引数として渡します。
実験アプリケーションの名前はattributesの保存の際に使用されます。 別の研究室メンバーの実験アプリケーションと区別するために、自身のニックネームを含めることを推奨します。
各ブラウザで生成されたUUIDを取得するには、idプロパティを用います。
try {
final browserId = await browser.id;
} catch (e) {
// エラーハンドリング
}上記を実行すると、各ブラウザのローカルストレージ(SharedPreferences)に保存されたUUIDが取得できます。 被験者が初めて実験ページにアクセスし、まだローカルストレージにIDがない場合には、新たにUUIDを生成して保存し、返します。 保存や取得に失敗した場合は例外がスローされます。
このライブラリでは、ブラウザIDだけでなく、被験者のクラウドソーシングIDや年齢、性別など他の情報も保存・取得することができます。
try {
await browser.setAttribute("crowdworker_id", "1234567890");
final crowdworkerId = await browser.getAttribute("crowdworker_id");
} catch (e) {
// エラーハンドリング
}上記を実行すると、ローカルストレージにクラウドワーカーIDを保存・取得できます。
例えば、クラウドワークス上で実験を実施する場合、各被験者のクラウドワークスIDを訊いてattributeとして保存しておくことで、ブラウザを変えて被験者が実験に複数回参加しようとした場合に同一被験者を識別することができます。