Android如何从外部跳进App

转自:http://blog.csdn.net/reboot123/article/details/46128331

这个问题解决了两天时间,因为网上没有完整的解决方案,解决后分享一下给大家!

解决这个问题有两个作用:

1、不用打开App直接进入某页面

2、实现App分享到外部,同时由外部进入App的闭环。

这个话题可以分两方面来讲,一方面是从微信进入App,另一方面是从网页进入App。

咱们拿http://my.oschina.net/liucundong/blog/354029当例子来讲一下

主要通过scheme、host、path、pathPrefix等data信息来区分

两个方案都需要给跳转到的Activity加入intent-filter信息,例如

<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="cundong" android:host="splash"/>

</intent-filter>

首先我们来讲微信端进入App,场景:从App分享内容到微信,再从微信直接打开App。

第一步,注册微信公众平台,相关企业信息,下载链接,Logo等 都填写完毕

第二步,分享时使用WXAppExtendObject,把链接url赋值给extInfo

第三步,在IWXAPIEventHandler接口的onReq方法的req.getType()=ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX时,发起你的跳转

第四步,跳转时需要数据,数据从哪里来,从WXEntryActivity类中onCreate方法的getIntent对象里来

从微信进入App就这样结束了。

-------------------我是分割线------------------------

接着来讲网页端,由于webView的限制,如微信、微博等都采用这个控件,所以只能分享到网页,再进入App。

原理如下:

<div>
            <a id="J-call-app" href="javascript:;" class="label">立即打开&gt;&gt;</a>
            <input id="J-download-app" type="hidden" name="storeurl" value="http://apk.hiapk.com/appinfo/com.tmall.wireless">
        </div>
 
        <script>
            (function(){
                var ua = navigator.userAgent.toLowerCase();
           
                var t;
                var url=document.location;
                var config = {
                    /*scheme:必须*/
                    scheme_IOS: 'cundong://',
                    scheme_Adr: 'cundong://splash',
                    download_url: document.getElementById('J-download-app').value,
                    timeout: 600
                };
 
                function openclient() {
                    var startTime = Date.now();
 
                    var ifr = document.createElement('iframe');
 
                    //alert(config.scheme_Adr);
                    ifr.src = ua.indexOf('os') > 0 ? config.scheme_IOS : config.scheme_Adr;
                    ifr.style.display = 'none';
                    document.body.appendChild(ifr);
 
                    var t = setTimeout(function() {
                        var endTime = Date.now();
 
                        if (!startTime || endTime - startTime < config.timeout -200) { 
                            window.location = config.download_url;
                        } else {
                                   window.location.href=ifr.src.replace("http://","cundong://");;
                        }
                    }, config.timeout);

 
                    window.onblur = function() {
                        clearTimeout(t);
                    }
                }
                window.addEventListener("DOMContentLoaded", function(){
                    document.getElementById("J-call-app").addEventListener('click',openclient,false);
 
                }, false);
            })()
        </script>

点击打开四个字后,执行一个js,在限制时间内,如果可以打开App则打开,否则进入下载页

解决这个问题的基本思路就是这样,欢迎大家交流探讨!

时间: 2025-01-26 13:22:49

Android如何从外部跳进App的相关文章

android web链接跳转app

问题描述 android web链接跳转app 我拿到了贴吧发帖记录的网址,怎么能用百度贴吧app打开这个网址,谢谢,第一次提问. 解决方案 android 超链接跳转web链接跳转安卓app的问题 解决方案二: 这个你得看百度贴吧app接受外部启动的时候是怎么写的了. 一般都是这样写的: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category andro

Android中关于cookie实现App实现自动登录的问题

问题描述 Android中关于cookie实现App实现自动登录的问题 1C 大神求助,我在登录APP的时候将cookie保存到临时文件中,在下一次进入这个APP的时候我将cookie读出来放到联网的header中实现自动登录,有时候登录是成功了,但是有时候发现服务器返回是成功了,但是貌似服务器得到的信息还是没有登录成功,获取的数据也是没有登录成功的时候的数据,我自动登录完成后刷新数据还是不能改变!求大神帮忙鉴定一下我是不是逻辑有问题还是说不能这样子实现自动登录,应该怎样做? 解决方案 模拟时携

月下载量上千次Android实现二维码生成器app源码分享_Android

在360上面上线了一个月,下载量上千余次.这里把代码都分享出来,供大家学习哈!还包括教大家如何接入广告,赚点小钱花花,喜欢的帮忙顶一个,大神见了勿喷,小学僧刚学Android没多久.首先介绍这款应用:APP是一款二维码生成器,虽然如何制作二维码教程网上有很多,我这里再唠叨一下并把我的所有功能模块代码都分享出来. 在这里我们需要一个辅助类RGBLuminanceSource,这个类Google也提供了,我们直接粘贴过去就可以使用了 package com.njupt.liyao; import c

android手机cad看图APP开发思路

问题描述 android手机cad看图APP开发思路 现在许多手机看cad图纸的app,请问这些APP大概是怎么开发的呢.比如使用什么语言,什么api等等 解决方案 这个需要用Android 代码去解析 CAD的图纸模型, CAD能导出很多种模型,你可以选择一个比较简单的模型 然后让Android去处理, Android 处理方式第一种用CANVAS绘画 感觉挺复杂的,用OpenGL去绘制空间坐标也是可以的,但都不简单.

java-毕业设计是一个android的旅游攻略APP

问题描述 毕业设计是一个android的旅游攻略APP 如题,下学期毕业设计是基于android的旅游攻略APP. 小弟略懂JAVA,目前也仍在学习中.同时为了毕设也要开始看Android 方面的书了,请问各位大神,有没有这方面的资料或者论文?!小弟在此叩谢了! 解决方案 本人计算机研一学生,有一份关于旅游景点的APP源代码,有安卓端的和服务器端的所有程序,功能非常多,还有相关的很多文档,是当时参加一个全国比赛做的所有材料,如果需要的话可以向我购买,源代码文档全部给你.也可以帮你代写毕业设计,联

android开发:如何让app自己在后台启动呢?

问题描述 android开发:如何让app自己在后台启动呢? 不是开机启动,而是平时的时候,app自己启动,要怎么做呢?是AndroidManifest.xml里面设置吗?主要是我看到好多app平时自己就启动,好像做出这样的功能. 还有就是,有没有可能自己启动时,不是调用MainActivity的onCreate(),而是调用另一个函数呢?或者不一定是另一个函数,可不可以在onCreate()里用if判断出现现在是自己启动,然后跑另一段代码呢? 解决方案 做一个android服务去启动你的程序

[Android地图sdk] 同样的app为什么在小米手机上闪退,在华为手机没问题。

问题描述 [Android地图sdk] 同样的app为什么在小米手机上闪退,在华为手机没问题. 刚接触百度地图api,今天用eclipse连真机调试,正常定位,但是用别人的小米打开app的时候闪退.我分别换了4.4和5.0都是一样.这是用小米调试时的错误信息: 04-27 18:22:29.038: E/AndroidRuntime(20471): FATAL EXCEPTION: main 04-27 18:22:29.038: E/AndroidRuntime(20471): Process

Android编程之高效开发App的10个建议_Android

本文讲述了Android编程之高效开发App的10个建议.分享给大家供大家参考,具体如下: 假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功.这就是为什么在开发中确保最优化.运行流畅而且不会使Android系统出问题 是至关重要的了.这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试.

eclipse-初学Android创建的第一个App出现Layout界面显示不出以及两个警告 求各位大神帮忙!

问题描述 初学Android创建的第一个App出现Layout界面显示不出以及两个警告 求各位大神帮忙! 1.This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in 2.[2015-07-21 21:46:26 - appcompat_v7] WARNING: unable to write jarlist cache file