我们在使用微信、QQ、京东等app的时候,会发现有时候通过他们的wap网页可以打开本地app,如果安装了则直接跳转,没有安装的话直接跳转应用商店
网页跳转app的原理如下:
对于Android平台URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。
格式如下:
scheme://host:port/path
举个栗子:
下面看下data flag
<data android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string" />
下面是一个测试demo,测试如何接收外部跳转:
在我们的App入口Activity的清单文件中配置如下:
<activity
android:name=".EntranceActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Entrance">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!--Android 接收外部跳转过滤器-->
<intent-filter>
<!-- 协议部分配置 ,要在web配置相同的-->
<data
android:host="splash"
android:scheme="test"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
如上所示,在data里设置了 scheme和host,则该Activity可以接收和处理类似于 "test://splash"的Uri。
网页端需要配置如下:
<!DOCTYPE html>
<html>
<body>
<iframe src="test://splash" style="display:none"></iframe>
</body>
</html>
SO,当我们从网页跳转的App的时候,如果本地安装了,那么就可以顺利跳转过来了, 是不是感觉So easy 呢?
如果你想在单独处理外部跳转的Uri可以,在接收外部跳转的Activity中添加如下代码:
Intent intent = getIntent();
String data = intent.getDataString();
if (data.equals("yijj://splash")){
// TODO: 在这里处理你想干的事情。。。
startActivity(new Intent(this,EntranceActivity.class));
}else {
finish();
}
http://www.open-open.com/lib/view/open1484051365201.html
- 大小: 34.3 KB
分享到:
相关推荐
在这个"课堂作业记单词APP"中,我们重点关注的是登录注册页面的跳转,这是任何应用程序中用户交互的基础部分。Android提供了丰富的组件和设计模式来实现这样的功能,让我们深入探讨一下。 首先,登录注册页面通常由...
当然只是其中的一个需求,还有的是现在各类app,分享出去的H5页面中,一般都会带着一个立即打开的按钮,如果本地安装了app,那么就直接唤起本地的app,如果没有安装,则跳转到下载。这是一个很正常的推广和导流量的...
标题"通过Html网页调用本地安卓app"涉及到的核心技术是利用HTML页面中的超链接(`<a>`标签)和安卓APP中的`Intent Filter`配置。在HTML页面中,你可以创建一个链接,其`href`属性设置为特定的`scheme`: ```html ...
在“XiaoHongShuWelcome-master”项目中,开发者将有机会实践上述所有知识,从项目的初始化、UI设计、功能实现,到测试和发布,一步步构建一个功能齐全的仿小红书应用。通过这个项目,开发者不仅可以提升Android开发...
1. **ACTION_VIEW**: 这个Action常用于打开一个文件或网页,例如,当你点击一个链接或选择本地文件时,系统会根据文件类型寻找合适的App来处理。 2. **ACTION_SEND**: ACTION_SEND Intent常用于分享内容,比如分享...
这个库特别强调支持在线查看PDF文件,这意味着用户无需先下载整个文件到本地存储,就可以直接在应用中浏览网络上的PDF文档,提高了用户体验。 `AndroidPDF`库的核心功能包括: 1. **PDF渲染**:库提供了一种高效的...
然后,在App中创建一个接收器来处理接收到的Intent: ```java public class CustomReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent != ...
在这个记账本APP中,开发者可能使用了Intent来在不同的Activity之间传递数据,例如,从主界面跳转到添加交易的Activity时,可能需要携带一些预设信息,如账户ID或当前时间。理解并正确使用Intent和Bundle进行数据...
4. **App Links**:这是Android系统的一个特性,类似于iOS的Universal Links,用于实现从Web到应用的无缝跳转。 5. **JavaScript接口**:在H5页面中,可以使用JavaScript与用户的设备进行交互。通过监听点击事件,...
在Android应用开发中,内嵌浏览器(In-App Browser)是一种常见的功能,它允许用户在应用程序内部浏览网页,而无需跳转到外部浏览器。本文将详细介绍Android中的内嵌浏览器实现,特别是基于WappBrowser的实践。 ...
这个基于Android的答题app实现代码提供了从设计用户界面到处理数据流、实现交互逻辑等全面的开发经验。 首先,我们需要了解Android应用开发的基础。Android是由Google主导的开源操作系统,用于移动设备如智能手机和...
Android本科毕业设计阅读小说app系统源码。功能简介如下: 一、书籍阅读介绍 1.、网络书籍:可以在线阅读网络书籍,无需下载,当然也提供了将书籍下载到本地的功能 2.、本地书籍:可以解析本地书籍并阅读,但要求...
【Android开发-完整的...通过深入研究这个项目的源代码,开发者不仅可以学习到上述技术,还能了解到如何将它们集成到实际项目中,提升自己的Android开发技能。同时,这也是一个了解当时Android开发最佳实践的好机会。
在Web调用本地应用的场景中,WebView扮演着桥梁的角色,它能加载网页并监听网页中的JavaScript事件,当检测到特定的事件时,可以启动相应的Android原生功能。 实现Web调用本地应用主要有以下两个步骤: 1. **...
【Android_网络点餐app.zip】是一个针对Android平台的简易网络点餐应用的源码项目,主要用于学生在期末课程设计中实践和学习Android开发技术。这个项目涵盖了几个关键的Android开发知识点,包括网络请求、数据库操作...
在本课程设计中,我们将探讨如何开发一个名为...以上就是“Android每日新闻app开发课程设计”涵盖的关键技术点,通过学习和实践这些知识点,开发者可以掌握构建一个完整Android应用的流程,提升在实际项目中的技能。
在Android中,页面间的跳转主要通过Intent实现。在登录按钮的点击事件中,调用Intent的构造函数,传入目标Activity和需要传递的数据,然后使用startActivity方法启动新的Activity。 安全方面,虽然SQLite数据库存储...
在Android平台上,开发一款音乐播放器App是一项常见的任务,它涉及到多个技术和组件的集成。本文将深入探讨基于Android Studio的音乐播放器应用开发,涵盖登录、注册、音乐列表、播放页面以及播放控制等功能。 首先...
为了实现上述功能,代码中使用了`window.location.href`方法,它会根据传入的URL Scheme尝试在设备上唤起对应的App或者打开对应的网页链接。同时,为了确保App可以被正确唤起,引入了计时器逻辑来判断是否成功唤起了...
在Android平台上,开发一个本地视频播放器涉及到许多关键知识点,主要涵盖音视频处理、Android SDK、Java编程语言以及可能使用的第三方库,如Apache Commons。以下是对这些知识点的详细阐述: 1. **Android SDK**: ...