`

Android 从网页中跳转到本地App

阅读更多
我们在使用微信、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
分享到:
评论

相关推荐

    详解如何通过H5(浏览器/WebView/其他)唤起本地app

    当然只是其中的一个需求,还有的是现在各类app,分享出去的H5页面中,一般都会带着一个立即打开的按钮,如果本地安装了app,那么就直接唤起本地的app,如果没有安装,则跳转到下载。这是一个很正常的推广和导流量的...

    Android本科毕业设计阅读小说app系统源码.zip

    Android本科毕业设计阅读小说app系统源码。功能简介如下: 一、书籍阅读介绍 1.、网络书籍:可以在线阅读网络书籍,无需下载,当然也提供了将书籍下载到本地的功能 2.、本地书籍:可以解析本地书籍并阅读,但要求...

    Android保存App异常信息到本地

    主要为大家详细介绍了Android保存App异常信息到本地,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Android本地应用打开方法——通过html5写连接

    scheme可以自己在app内部设置成任意的,把android和ios的设置成一样的 2、若本地应用存在,直接打开app;若不存在,计时一段时间跳到appstore 需要判断ios还是android平台下的浏览器,需要判断微信浏览器 XML/...

    安卓开发课设-基于Android开发的铁路售票系统APP源码+项目说明.zip

    安卓开发课设-基于Android开发的铁路售票系统APP源码+项目说明.zip 登录页面介绍 首先进入是的`车票`、`订单`、`我的`三个选项页面 车票功能 选择车站 首先设定布局文件 实现了出发城市和到达城市之间的**动画播放*...

    Android kotlin APP 开发框架

    demo简单的编写了几个控件及功能的使用,可用作APP开发初始代码进行下一步开发,包括:实现底部导航栏、下拉上拉刷新、实现网络请求、api统一处理及数据处理、页面跳转并回调数据、实现本地缓存和toast及日志打印...

    Android中WebView中拦截所有请求并替换URL(支持post)

    接到这样一个需求,需要在 WebView 的所有网络请求中,在请求的url中,加上一个sign=xxxx 的标志位,同时添加手机本地的数据比如 sessionToken=sd54f5sd4ffsdf45454564 、deviceId=863970025919887 文章链接:...

    实现网页链接跳转原生应用

    作者SpikeKing,源码TestWebIntent,人们每天都要访问大量的手机网页, 如果把手机网页(Web)和应用(App)紧密地联系起来, 就可以增大用户的访问量, 也有其他应用场景, 如网页中调用支付链接, 新闻中启动问诊界面, 提供...

    Android+kotlin+实用控件+实际开发使用框架

    此demo为公司实际开发中使用的框架在剔除工具类及所有实际功能页面后的框架,Android APP开发使用kotlin语言,试用于入门软件开发人员,对于刚入门学习kotlin Android开发人员在搭建APP时,demo已集成网络请求、api...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...

    Android实现APP在线下载更新

    本文利用android自带的下载管理器DownloadManager进行下载最新版本的apk,下载完成后自动跳转安装。效果如下: 第一步、检查版本并判断是否需要更新 通过获取当前app版本号与服务器上的版本号进行对比,如果本地的...

    模拟爱奇艺本地视频播放器app.zip

    本软件要求在手机(平板电脑)上运行,要求1GB以上运行内存,100MB以上存储,Android 4.x以上版本操作系统。 主界面主要有3部分构成,最上面得是搜索框,中间是分类筛选,最下面得是电影列表。搜索框的主要功能是...

    android 完全中文版 开发应用详解

    目录: 结构如下,非常详细 第1章 android系统概述 1 ...15.1.6 app widget的使用 379 15.2 android应用开发实例 381 15.2.1 gui依赖类的程序 382 15.2.2 单独模块类程序 387 15.3 android的设计理念 393

    Android项目源码一款基于MVP设计模式开发的仿淘宝APP.zip

    Activity跳转时图库时的Intent如下 Intent takePhotoIntent = new Intent( “android.media.action.IMAGE_CAPTURE”); takePhotoIntent.putExtra( MediaStore.EXTRA_OUTPUT, imageUri); 在onActivityResult()方法中...

    ARouter::flexed_biceps: A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)

    A framework for assisting in the renovation of Android app componentization 最新版本 模块 Arouter-api 路由编译器 路由器寄存器 路由器思想插件 版本 演示版 , 一,特色 支持直接解析标准URL以进行跳转并...

    ARouter::flexed_biceps:用于协助Android组件化改造的框架(帮助Android App进行组件化改造的路由框架)

    A framework for assisting in the renovation of Android app componentization 最新版本 模组 路由器API 路由编译器 路由器寄存器 路由器思想插件 版 演示版 , 一,特点 支持直接解析标准URL以进行跳转并将...

    Android 高仿QQ图片选择器

    当做一款APP,需要选择本地图片时,首先考虑的无疑是系统相册,但是Android手机五花八门,再者手机像素的提升,大图无法返回等异常因数,导致适配机型比较困难,微信、QQ都相继的在自己的APP里集成了图片选择功能,...

    Android Studio 银行管家课设

    android studio开发的课设(不联网)数据库使用SQLite 主要功能:登陆注册(SQLite)、资讯(Listview)、记账本(SQLite)、 银行链接(Intent的简单跳转)、我的(SP存储)、音乐(播放APP本地音乐)

    capacitor-native-settings:电容插件可打开android和iOS的本机设置屏幕

    电容器本地设置电容插件可打开android和iOS的本机设置屏幕安装npm install capacitor-native-settingsnpx cap sync原料药openAndroid(...) openAndroid ( option : AndroidOptions ) =&gt; any 在android中打开指定的...

    the-tech-frontier-app:适用于 Tech Frontier 的 Android 应用

    文章内容缓存到本地数据库; 用户可以通过左边的菜单切换文章分类,含有Android、iOS、招聘信息、关于等; 用户可以通过第三方社交平台登录,可以分享文章到社交平台(微博、QQ、QQ空间、朋友圈、微信); 用户可以收藏...

Global site tag (gtag.js) - Google Analytics