网页与原生应用之间互相跳转

现在的移动应用中,常常需要在应用中展示一个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 }
时间: 2024-10-08 15:18:07

网页与原生应用之间互相跳转的相关文章

使用自定义 URL 实现控制器之间的跳转-b

一个app往往有很多界面,而界面之间的跳转也就是对应控制器的跳转,控制器的跳转一般有两种情况 push 或者 modal,push 和 modal 的默认效果是系统提供的 文章配图 1. 概述 系统提供的push和modal方法有时并不能满足实际需求.比如,我们需要根据服务器返回的字段跳到指定的控制器,难道作判断吗?那显然不是最佳解决方案. 其实我们可以这样: NSString *urlStr = @"dariel://twoitem?name=dariel&userid=213213&

微信小程序详解——页面之间的跳转方式【路由】和参数传递

微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能.今天我们来研究小程序页面之间的跳转方式. 1.先导 在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也有栈的概念在里面.微信小程序页面跳转有四种方式: 1.wx.navigateTo(OBJECT): 2.wx.redirectTo(OBJECT): 3.wx.switchTab(OBJECT): 4.wx.navi

Jsp与servlet之间页面跳转及参数传递实例(转)

原网址:http://blog.csdn.net/ssy_shandong/article/details/9328985 11. jsp与servlet之间页面跳转及参数传递实例 分类: Java Web2013-07-17 16:24 16461人阅读 评论(12) 收藏 举报 jsp servlet传递参数 目录(?)[-] 1从一个jsp页面跳转到另一个jsp页面时的参数传递 2jsp页面传递参数给servlet 3从servlet到jsp页面中传递参数 4从一个servlet到另一个s

MVC Html.ActionLink Area 链接中含区域的页面之间的跳转

例如我有一个需求,使用@Html.ActionLink实现不同功能之间的跳转,有部分Control是在Area之下,这种时候我们应该如何实现区域间的跳转呢? 错误用例: <ul class="nav navbar-nav"> <li>@Html.ActionLink("主页", "Index", "Home")</li> <li>@Html.ActionLink("退款

sprig里的controller之间的跳转的问题

学习spring的controller,发现controller之间的跳转有些地方搞的不是很清楚,如果通过controller的return语句实现跳转的话,会造成request的丢失:具体怎么回事首先一般的语句是:  return new ModelAndView("login");  其实这条语句是将一个login.jsp页面发送给客户端,而不是实现controller之间的跳转(昨晚就在这里郁闷了很久)  要实现controller的跳转,有两种方法:  1.return new

UINavigation的外观设置和页面之间的跳转

创建导航: 1.创建一个视图控制器的类a 2.在app中引用 3.在app.m中创建a对象 4.创建一个导航视图,并且把a对象作为导航视图的根视图 5.设置window的根视图为导航视图控制器,代码: 6.到a.m文件中给导航设置属性,如:(给导航设置属性大部分都是.navigationItem) 用导航的两个视图之间的跳转: 1.再创建一个视图控制器,在第一个视图控制器还有第二个视图控制器上面都添加一个按钮,来用于页面之间的跳转 2.第一个页面到第二个页面之间的跳转button的方法,代码:(

iOS开发拓展篇—应用之间的跳转和数据传递

iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用. 1.新建两个应用,分别为A和B.     2.设置应用B的url. 3.在应用A中编写打开app的代码 点击之后,会跳转到新的控制器. 注意:打开应用B的过程中,B有两种状态. 第一种状态:B并没有启动,那么会启动B.并调用下面的方法. 第二种状态:此时B已经启动了,但是在后

action之间的跳转

一.当type为chain 时,说明是action链,运行完第一个action java文件接着会运行第二个action JAVA 文件,相当于forward(客户端的url不会改变). <result name="noPass" type="chain">                <param name="actionName">system/User_customerResult</param>   

ios如何实现应用之间的跳转

ios开发时 应用之间的跳转非常常用,比如 在一些购物类app上 直接跳转到支付宝app进行付款,比如 微信分享给好友 或者 朋友圈,可以跳转到微信不同的界面等,应用场景很多,就不一一赘述,那么如何实现应用之间的跳转呢? - (IBAction)skipToWechat { [self openURLWithString:@"wechat://"];} - (IBAction)skipToTimeline { [self openURLWithString:@"wechat: