提交 1bacf432 authored 作者: yueweilu's avatar yueweilu

阅读页的链接跳转

上级 0c5d5720
library link;
import 'package:flutter/material.dart';
import 'package:flutter_book/utils/index.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
part 'view.dart';
\ No newline at end of file
part of link;
class LinkPage extends StatefulWidget {
final String url;
const LinkPage({
Key? key,
required this.url
}) : super(key: key);
@override
State<LinkPage> createState() => _LinkPageState();
}
class _LinkPageState extends State<LinkPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: false,
),
body: InAppWebView(
initialUrlRequest: URLRequest(
// url: Uri.parse('https://baike.baidu.com/item/${widget.keyword}?fromModule=lemma_search-box'),
url: WebUri.uri(Uri.parse(widget.url))
),
),
);
}
}
......@@ -201,6 +201,12 @@ class _ReadPageState extends State<ReadPage> {
readController.setShow(readController.show);
});
// 阅读页内容中的 外部链接
controller.addJavaScriptHandler(handlerName: 'openLinkCallback', callback: (args){
Console.log('监听外部链接------------------------------------------------$args');
context.pushNamed(Routes.link,queryParameters: {'url': args.first.toString()});
});
},
),
// AnimatedPositioned(
......
......@@ -14,6 +14,7 @@ import 'package:flutter_book/pages/credit_points/index.dart';
import 'package:flutter_book/pages/forget_pwd/index.dart';
import 'package:flutter_book/pages/help_center/index.dart';
import 'package:flutter_book/pages/help_cneter_content/index.dart';
import 'package:flutter_book/pages/link/index.dart';
import 'package:flutter_book/pages/login/index.dart';
import 'package:flutter_book/pages/main/index.dart';
import 'package:flutter_book/pages/reset_pwd/index.dart';
......
......@@ -45,6 +45,8 @@ abstract class Routes {
static const baiKe = 'bai_ke';
// 字典
static const baiDict = 'bai_dict';
// 外部链接
static const link = 'link';
/// 书架模块
static const creditPoints = 'credit_points';
......@@ -643,6 +645,17 @@ abstract class Routes {
)
)
),
GoRoute( // 外部链接
path: '/$link',
name: link,
pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(),
key: state.pageKey,
child: LinkPage(
url: state.uri.queryParameters['url'].toString(),
)
)
),
GoRoute( // 知识测评
path: '/$answer',
name: answer,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论