getAndroidApps static method
Implementation
static Future<List<App>> getAndroidApps(String developerId) async {
try {
final String? pageContent = await Util._fetchUrl(
"https://play.google.com/store/apps/dev?id=${developerId.replaceAll(' ', '+')}",
);
if (pageContent == null) {
return [];
}
int dataStart = pageContent.indexOf("AF_initDataCallback({key: 'ds:3',");
dataStart = pageContent.indexOf("data:", dataStart) + 5;
final int dataEnd = pageContent.indexOf(", sideChannel:", dataStart);
final String jsonDataString = pageContent.substring(dataStart, dataEnd);
final List<dynamic> appItems = (jsonDecode(jsonDataString) as dynamic)[0]
[1][0][21][0] as List<dynamic>;
return appItems
.map(
(i) => App(
id: i[0][0],
name: i[3],
category: i[5],
developerName: i[14],
rating:
(i[4] as List).isEmpty ? 0 : double.tryParse(i[4][0]) ?? 0,
imageUrl: i[1][3][2],
url: "https://play.google.com/store/apps/details?id=${i[0][0]}",
platform: AppPlatform.android,
isFree: i[7] == null || i[7].isEmpty,
),
)
.toList();
} catch (e) {
dPrint("Exception while parsing Android apps: $e");
}
return [];
}