通过Uri跳转Activity(当然对于WebView中的网页同样适用)
来源:互联网 发布:军事小说 知乎 编辑:程序博客网 时间:2024/06/01 07:50
在上班的第二个星期,项目老大,叫我做一个从WebView中的网页跳转到一个新的Activity,当时一脸懵逼,当然只有度娘和google了,在度娘上找到了答案,其实也是非常简单的,我们在平时都是用Intent去跳转,但是竟然没有留意,Intent中可以传递uri进行跳转,下面讲述一个实例:进行展示:
第一步:在AndroidManifest.xml中找到你要跳转的Activity,在该Activity添加过滤器如下图:
在此data便签,便是url的配置了。一定要注意path这个参数,一定要先/在跟路径。wr://com.app.wr:8888/app?id=1001此url是一个完整的urlwr:代表的是scheme 协议名称 //在此注意为了从A页面直接跳转到B页面,不要使用网路协议,不然,在跳转是会让用户,选择是跳转那个页面。goods:代表的是host 代表scheme的那个作用域/goodsDetail:代表的是path 指定那个页面8888:代表的port 端口号id:代表的query 代表传递的参数在此第一步的配置就完成了
第二步:那就是A页面跳转到B页面了,在此有两种方式进行跳转(原生跳转和webView的网页跳转),先介绍第一种方式:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("wr://com.app.wr:8888/app?id=1001")));这就完成了原生跳转,如果你要跳转的Activity不需要参数,那在地址中也不用要参数了。我这边只传递了一个id值过去
所运行的截图
第二种方法:在WebView中去跳转
private String mLoadData = "<html>\n" + "\n" + "<head>\n" + "<title>正在加载数据...</title>\n" + "\n" + "</html>"; private String mData = "<html>\n" + "\n" + "<head>\n" + "<title>我的第一个 HTML 页面</title>\n" + "</head>\n" + "\n" + "<body>\n" + "<p>body 元素的内容会显示在浏览器中。</p>\n" + "<p>title 元素的内容会显示在浏览器的标题栏中。</p>\n" + "\n" + "<a href=\"wr://com.app.wr:8888/app?id=1001\">打开商品详情</a>\n" + "</body>\n" + "\n" + "</html>";让webView加载上面这个html。就可以跳转了,在此不进行截图了,下面介绍如何在B页面中获取uri中传递的参数
B页面中获取uri中传递的参数:
Uri uri = getIntent().getData(); uri中有很多获取参数的方法 String id = uri.getQueryParameter("id") 就成功的获取了参数,当然还有一些方法进行获取
如何判断一个Scheme是否有效
PackageManager packageManager = getPackageManager();Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("wr://com.app.wr:8888/app?id=1001"));List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);boolean isValid = !activities.isEmpty();if (isValid) { startActivity(intent);}
阅读全文
0 0
- 通过Uri跳转Activity(当然对于WebView中的网页同样适用)
- webview中实现当点击网页中的按钮的时候,跳转到本地的activity。
- android:scheme 通过uri跳转到APP应用指定Activity
- Android通过uri跳转到APP指定的Activity
- 跳转显示webview网页
- android 通过uri启动Activity
- android 通过uri启动Activity
- 通过WebView显示网页
- 点击列表跳转网页(webView)
- Android内嵌网页webview点击其中的链接跳转到我们应用内的Activity
- 从webview所访问的网页端跳转到本地Activity
- 第九章,WebView点击网页内链接跳转到其他Activity(Android)
- Linux开发中的常用命令(cygwin环境也同样适用)
- Linux 开发中的常用命令 ( Cygwin 环境也同样适用)
- Linux 开发中的常用命令 ( Cygwin 环境也同样适用)
- fedora10下设置静态IP地址 (对于fedora 17同样适用)
- fedora10下设置静态IP地址 (对于fedora 17同样适用) .
- android 通过WebView显示网页
- UVALive 4764 Bing it
- ConstraintLayout can not resolve symbol 'parent'
- 数学建模(7)——蒙特卡罗算法(Monte Carlo)
- linux-mysql-5.7.18-安装步骤
- 【MySQL】批量数据循环插入
- 通过Uri跳转Activity(当然对于WebView中的网页同样适用)
- 线段树模板
- 懒汉式单利同步链接jdbc数据库
- Mybatis 简介
- MySQL性能优化(1)
- 截取文件的字符,使用cut和awk
- Windows Socket 网络编程基础
- 自定义的样式文件和js文件打成webjar
- Linux 安装jdk