网页与原生应用之间互相跳转
现在的移动应用中,常常需要在应用中展示一个Web页面,通常Web页面也需要再转回原生的应用页面,从而达到更多的页面复用。
这里介绍一种方式,通过提前截获要跳转的A标签,来判断是否需要跳转。
下面是方法:
Android:
1 mWebView.getSettings().setDomStorageEnabled(true); 2 mWebView.getSettings().setDatabaseEnabled(true); 3 mWebView.getSettings().setJavaScriptEnabled(true); 4 mWebView.loadUrl(url); 5 mWebView.setWebViewClient(new WebViewClient() { 6 @Override 7 public boolean shouldOverrideUrlLoading(WebView view, String url) { 8 //这里添加判断代码,根据url来判断是否需要跳转到原生页面或是继续跳转到网页 9 // view.loadUrl(url); 10 return true;// 返回true来结束这次监听,不需要再次广播 11 } 12 });
iOS:
UIWebView所在的Controller需要实现UIWebViewDelegate
下面是代码:
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 self.theWebView.delegate = self; // 注意:这里需要设置委托 4 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; 5 NSURLRequest *request = [NSURLRequest requestWithURL:url]; 6 [self.theWebView loadRequest:request]; 7 } 8 9 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 10 //判断是否是单击 11 if (navigationType == UIWebViewNavigationTypeLinkClicked) 12 { 13 NSURL *url = [request URL]; 14 // 这里加入判断语句,判断网页url,是否需要继续跳转,或是使用原生页面 15 return NO; // 返回NO,结束网页跳转,如果要继续跳转,需要返回YES 16 } 17 return YES; // 继续网页跳转 18 }
本文已在版权印备案,如需转载请在版权印获取授权。
版权印为您的作品印上版权36735100
一只孤独的猫咪神!喵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?