webView link

This commit is contained in:
Amir Hossein Mousavi 2023-10-12 18:01:21 +03:30
parent eef1acc601
commit 043f03f9e5
1 changed files with 20 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import 'package:didvan/models/requests/radar.dart';
import 'package:didvan/models/requests/studio.dart'; import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/media/media.dart'; import 'package:didvan/services/media/media.dart';
import 'package:didvan/services/network/request.dart';
import 'package:didvan/views/podcasts/studio_details/studio_details_state.dart'; import 'package:didvan/views/podcasts/studio_details/studio_details_state.dart';
import 'package:didvan/views/widgets/didvan/card.dart'; import 'package:didvan/views/widgets/didvan/card.dart';
import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/didvan/text.dart';
@ -14,6 +15,7 @@ import 'package:didvan/views/widgets/skeleton_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:persian_number_utility/persian_number_utility.dart'; import 'package:persian_number_utility/persian_number_utility.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher_string.dart';
class SearchResultItem extends StatelessWidget { class SearchResultItem extends StatelessWidget {
final OverviewData item; final OverviewData item;
@ -33,14 +35,20 @@ class SearchResultItem extends StatelessWidget {
return StudioRequestArgs(page: 0, type: item.type); return StudioRequestArgs(page: 0, type: item.type);
} }
String get _targetPageRouteName { String? get _targetPageRouteName {
if (item.type == 'radar') { if (item.type == 'radar') {
return Routes.radarDetails; return Routes.radarDetails;
} }
if (item.type == 'news') { if (item.type == 'news') {
return Routes.newsDetails; return Routes.newsDetails;
} }
return Routes.studioDetails; if (item.type == 'podcast') {
return Routes.podcasts;
}
if (item.type == 'video') {
return Routes.videocasts;
}
return null;
} }
IconData get _icon { IconData get _icon {
@ -80,8 +88,17 @@ class SearchResultItem extends StatelessWidget {
); );
return; return;
} }
if (_targetPageRouteName == null && item.link != null) {
launchUrlString(
'${item.link!}?accessToken=${RequestService.token}',
mode: LaunchMode.inAppWebView,
);
return;
}
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
_targetPageRouteName, _targetPageRouteName!,
arguments: { arguments: {
'id': item.id, 'id': item.id,
'args': _targetPageArgs, 'args': _targetPageArgs,