Android 从网页中跳转到APP

最近,在使用QQ和微信等SDK来实现分享网页的时候,发现,SDK已经为页面跳转回应用提供了基本的数据支持。我们只需在应用里和被分享的网页进行简单的设置,即可实现此功能。

那么我们先来看下网页跳转回应用的实现原理。

就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下: 
scheme://host:port/path 
举个实际的例子: 
content://com.example.project:200/folder/subfolder/etc 
\---------/  \---------------------------/ \---/ \--------------------------/ 
scheme                 host               port        path 
                \--------------------------------/ 
                          authority    

现在大家应该知道data flag中那些属性的含义了吧,看下data flag 
<data android:host="string" 
      android:mimeType="string" 
      android:path="string" 
      android:pathPattern="string" 
      android:pathPrefix="string" 
      android:port="string" 
      android:scheme="string" /> 

以下是测试示例的实现步骤:

1. 新建一个工程A,并实现一个Activity,用来接收外部的跳转。代码如下:

public class JumpActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);Intent intent = getIntent();String data = intent.getDataString();System.out.println(data);}}

在这个Activity里,我们可以通过getIntent(),来获取外部跳转传过来的信息。

2.  修改ManiFest文件,设置Activity的接收Action的属性,代码如下:

        <activity android:name=".JumpActivity" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><dataandroid:host="data"android:scheme="sharetest" /></intent-filter></activity>

如上所示,在data里设置了 scheme和host,则该Activity可以接收和处理类似于 "sharetest://data/XXX"的链接。

3. 接下来我们可以写一个测试工程B,看看工程A中的JumpActivity是否可以接收和处理类似于 "sharetest://data/XXX"的链接。因此,新建一个工程B,工程里只有一个WebView,用来打开一个本地的网页。由于WebView在接收到自己不能处理的Uri时,会自动的调用发送Intent来调用能够处理该Uri的应用。

以下是网页的代码:

<!DOCTYPE html>
<html>
<body>
<iframe src="sharetest://data/123" style="display:none"></iframe>
</body>
</html>
将该网页放到Assets目录下,在代码里调用Webview加载该Html文件,代码如下:

    public void loadHtml(){WebView webview = new WebView(this); WebSettings wSet = webview.getSettings(); wSet.setJavaScriptEnabled(true);webview.loadUrl("file:///android_asset/a.html");  setContentView(webview);}

4. 将手机装上工程A和工程B。打开工程A,可以发现:工程B的JumpActivity会自动被打开。如下图所示:在Intent中可以去到网页里发出的链接:sharetest://data/123。

因此,我们就可以在JumpActivity里处理接收到的消息了。


通过以上的4步,相信大家都了解如何让应用接收和处理某种Uri消息。因此,只要我们

1. 在ManiFest里为Activity申明接收并处理某种Uri

2. 在页面中添加以下代码:其中,l为符合Activity处理规则的Uri地址。

<iframe src="l" style="display:none"></iframe>
就可以让已安装该应用的用户在打开该网页的时候,自动的跳转到应用内部。

点击微信和QQ分享跳转到程序内部的原理与此一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66901.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android利用Intent实现Activity页面跳转闪退解决方案

当我们利用Intent跳转&#xff1a; btnLogin.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {//当点击了登入按钮&#xff0c;跳转到相应activity页面Intent intent new Intent(MainActivity.this, LoginActivity.class);startActi…

phonegap跳转Activity android插件调用原生

Phonegap的插件 调用本地的Activity 查看我上一篇插件开发的文章: http://blog.csdn.net/aaawqqq/article/details/20401111 本节主要记录调用Activity的方式; 并提供 插件Demo下载 插件开发4个步骤: 1 在assents 目录下的 cordova-plugins.js文件添加配置 2 在asse…

关于安卓手机的微信内置浏览器中页面跳转失效的问题

Write By Monkeyfly 以下内容均为原创&#xff0c;如需转载请注明出处。 前提 今天下午在JS前端群里有人问了一个问题&#xff1a; 在微信浏览器中&#xff0c;window.location.href这个跳转方法不能用吗&#xff1f;在安卓手机试过了不行&#xff0c;但是ios可以&#xff…

安卓页面的跳转(按钮点击跳转、自动跳转)

一.创建新页面 在eclipse中建立安卓工程后&#xff0c;默认会有一个页面MainActivity&#xff0c;要实现多个页面的跳转&#xff0c;首先需要建立新的页面 在eclipse建立新的页面过程如下&#xff1a; 要添加的新页面的工程下src 右键---->New—>Other—>选择Android…

安卓跳转按钮的闪退问题

不知道为什么 跳转按钮有时可以跳转有时会闪退 程序并没有报错&#xff0c;求大神指导&#xff01; 闪退的次数特别多&#xff01;

android app跳转到微信

今天写这片文章主要是记录下 app跳转到微信的实现方法&#xff0c;我的项目需求是跳转到微信公众号&#xff0c;由于微信官方关闭了这个直接可以跳到公众号的接口&#xff0c;只能 从app打开微信&#xff0c;让用户自己去搜索。 我的项目需求&#xff1a; 点击跳转微信的时候&…

Android页面跳转(Intent)

Android 意图的使用&#xff08;Intent&#xff09; 显式四种跳转方式一二三四布局代码效果 隐式意图和隐式意图的跳转Intent概述Action属性Data属性Category属性按home键时启动自己做的应用 Component属性Extra属性&#xff08;重点&#xff09;Bundle传递序列化对象 Type属性…

安卓——Intent(实现页面跳转的两种方法)

下图中两个不同的方法就是两种页面之间跳转的情况 1>跳转不返回数据 2>跳转返回数据 实例&#xff1a; 第一种启动方式&#xff08;跳转不返回数据&#xff09; 第二种启动方式&#xff08;跳转返回数据&#xff09; 先看第一种&#xff1a; 点击第一种启动方式按钮…

【安卓开发】安卓页面跳转

目录 一、如何添加一个页面&#xff08;activity&#xff09;二、如何实现页面的跳转二、页面跳转传参1. 方式一2. 方式二安卓线程实现页面跳转安卓创建一个线程 三、Activity&#xff08;页面)的生命周期 一、如何添加一个页面&#xff08;activity&#xff09; 1. 右键 src …

安卓app之页面跳转

手动跳转 1.打开eclipse&#xff0c;New一个安卓工程 后面一直next&#xff0c;知道出现以下界面说明项目创建成功 2.添加第二个页面 一直next&#xff0c;直到出现以下界面 修改 Activity Name &#xff0c;点击Finish&#xff0c;页面添加成功 点击 AndroidManifest.xml 可…

大咖说·对话开源|与Tapdata论道数据技术开放生态

一个良好的开源生态具有哪些特征&#xff1f;开源与商业一定是对立的吗&#xff1f;开源产品应该如何做好商业化&#xff1f; 一个良好的开源生态具有哪些特征&#xff1f;开源与商业一定是对立的吗&#xff1f;开源产品应该如何做好商业化&#xff1f;本期大咖说&#xff0c;阿…

中奖名单公布

阅读本文大概需要 1.8 分钟。 头条今天的推送是恰饭文章&#xff0c;但确实觉得很不错&#xff0c;觉得靠谱才会推荐&#xff0c;感兴趣的可以参与下&#xff0c;反正免费的&#xff0c;不感兴趣忽略就好。 那个&#xff0c;先说声不好意思&#xff0c;五月份的收租抽奖我一直以…

纪录篇 之 我收集整理的一些网址(不断更新 ing)

LZ-Says&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。 前言 起初&#xff0c;不知道写博文是为了什么。 现在&#xff0c;点滴记录&#xff0c;为了更好的明天。 未来&#xff0c;只是为了证明这个世界我来过。 写这篇文章的前提&#xff0c;或者说诱发因素如下…

三金叉见底

三金叉见底 三金叉买入&#xff0c;三死叉止损 技术指标作为一种参考工具&#xff0c;在不同人的眼里会有不同的研判结 果。投资者不应该单以一项指标的讯号而对行情作出绝对的判断&#xff0c;因 为指标所起的只是一种辅助的作用而不是绝对的作用。如果采用多种 指标可以增加…

程序员的人生规划

展望未来&#xff0c;总结过去10年的程序员生涯&#xff0c;给程序员小弟弟小妹妹们的一些总结性忠告。 走过的路&#xff0c;回忆起来是那么曲折&#xff0c;把自己的一些心得体会分享给程序员兄弟姐妹们&#xff0c;虽然时代在变化&#xff0c;但是很可能你也会走我已经做…

第四周周赛——三金三银两铜+签到

A——HDU 5974 A Simple Math Problem <-题目链接 签到题 Given two positive integers a and b,find suitable X and Y to meet the conditions:XYaLeast Common Multiple (X, Y) bInput Input includes multiple sets of test data.Each test data occupies one lin…

工作十年的程序员,却拿着毕业三年的工资……

工作十年的程序员&#xff0c;却拿着毕业三年的工资…… 导语&#xff1a;小韩是一家小公司的软件程序员&#xff0c;而十年后他还在那家公司&#xff0c;依然是一名普通的程序员。算起来&#xff0c;他工作也有十多年了&#xff0c;但是&#xff0c;他却告诉我&#xff0c;他…

孙杨事件的几点事实!

阅读本文大概需要 3.3 分钟。 昨天一个最爆炸的消息&#xff0c;莫过于孙杨被国际体育仲裁法庭禁赛 8 年的判决。 毫无疑问&#xff0c;孙杨是继姚明、刘翔时代之后&#xff0c;在国际体坛影响力最大&#xff0c;人气最高的一位中国体育名将了&#xff0c;所以&#xff0c;无数…

AI领域最有影响力100人,Hinton只排31、Bengio竟然没有上榜?

2021-01-22 00:42:54 作者 | 耳洞打三金 大家好我是三金&#xff0c;今天又是开开心心的一天&#xff0c;如题目和上图所示&#xff0c;我今天在上班摸鱼的时候发现了这样一份号称是“AI领域最有影响力的100人”的榜单。 这可把我给吓了一跳 &#xff0c;我赶紧把这个榜单从头…

谷歌最新提出无需卷积、注意力,纯MLP构成的视觉架构!网友:MLP is All You Need?

2021-05-06 15:50:28 作者 | 耳洞打三金、琰琰 近日&#xff0c;谷歌大脑团队新出了一篇论文&#xff0c;题目为《MLP-Mixer: An all-MLP Architecture for Vision 》&#xff0c;这篇论文是原视觉Transformer&#xff08;ViT&#xff09;团队的一个纯MLP架构的尝试。 本文总…