`
dengyin2000
  • 浏览: 1228561 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在android浏览器中如果安装了app,则打开app,如果没有则跳转到应用市场下载。

 
阅读更多
这个方式也兼容ios。

先看html

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>App Redirection</title>
</head>
<body>



<script>
    var IS_IPAD = navigator.userAgent.match(/iPad/i) != null,
            IS_IPHONE = !IS_IPAD && ((navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null)),
            IS_IOS = IS_IPAD || IS_IPHONE,
            IS_ANDROID = !IS_IOS && navigator.userAgent.match(/android/i) != null,
            IS_MOBILE = IS_IOS || IS_ANDROID;

    function open() {

        // If it's not an universal app, use IS_IPAD or IS_IPHONE
        if (IS_IOS) {
            window.location = "myapp://view?id=123";

            setTimeout(function() {

                // If the user is still here, open the App Store
                if (!document.webkitHidden) {

                    // Replace the Apple ID following '/id'
                    window.location = 'http://itunes.apple.com/app/id1234567';
                }
            }, 25);

        } else if (IS_ANDROID) {

            // Instead of using the actual URL scheme, use 'intent://' for better UX
            window.location = 'intent://view?xxxx=123#Intent;package=com.example.myapp;scheme=vip;launchFlags=268435456;end;';

        }
    }

    open();
</script>
</body>
</html>


android app中androidminifest.xml的activity的设置,具体看MyActivity

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.myapp"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="19"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="true">
        <activity android:name=".MyActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </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="vip" android:path="/view"  />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


在activity获取传入的参数xxxx的值,需要解析Uri方式来获取

package com.example.myapp;


import org.apache.http.protocol.UriPatternMatcher;

import java.net.URI;
import java.net.URISyntaxException;

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String s = getIntent().toURI();
        Uri parse = Uri.parse(s);
        String xxxx = parse.getQueryParameter("xxxx");

        Log.d("MyActivity", xxxx);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.d("MyActivity", "xx" + getIntent().toURI());
    }
}



Reference:https://gist.github.com/FokkeZB/6635236 我使用的是这篇文章中js的实现方式, 这篇文章也有后端php的实现方式。
分享到:
评论
1 楼 尹鹏波 2014-08-27  
请问lz android应用市场是怎么跳转的?

相关推荐

    h5页面唤起app如果没安装就跳转下载(iOS和Android)

    h5页面唤起app如果没安装就跳转下载(iOS和Android) 浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app。因此只能是h5去尝试唤起app,若不能唤起,引导用户去下载我们的app。 微信里屏蔽了 schema 协议,...

    微信跳转到浏览器下载APP实现代码

    在移动互联网时代,微信作为一款超级App,拥有庞大的用户群体,很多开发者希望能在微信内部实现跳转到外部浏览器下载自己的应用程序。本知识点主要探讨如何通过编程实现“微信跳转到浏览器下载APP”的功能,这对于...

    微信跳转到默认浏览器下载app.zip

    因此,开发者常常需要将用户引导到设备的默认浏览器来完成这些操作,比如下载安装应用程序(APP)。本主题“微信跳转到默认浏览器下载app.zip”提供的代码示例,旨在帮助开发者实现这一功能。 1. **微信跳转机制**...

    android:scheme 通过uri跳转到APP应用指定Activity

    如果不能,我们可以在网页或通知中显示提示信息,引导用户下载安装我们的应用。 总的来说,`android:scheme`是Android中实现深度链接的关键,它允许开发者通过自定义URI协议实现从外部应用或系统直接跳转到应用内的...

    从浏览器跳转到自己的app

    标题“从浏览器跳转到自己的app”涉及到的技术领域是移动应用开发,特别是Web与原生应用的交互。这里主要讨论的是如何通过网页(H5)的内容来触发用户的设备上安装的特定应用程序(app)的启动。这个过程通常依赖于...

    Android-一个App内嵌浏览器

    在Android应用开发中,内嵌浏览器(In-App Browser)是一种常见的功能,它允许用户在应用程序内部浏览网页,而无需跳转到外部浏览器。本文将详细介绍Android中的内嵌浏览器实现,特别是基于WappBrowser的实践。 ...

    android判断手机是否安装地图应用实现跳转到该地图应用

    首先你需要判断手机中有没有安装地图应用,在这里提供一个方法: 判断手机是否安装某一应用 上述的packagename是你要检测的应用的包名,怎么查看包名请自行百度哈! 判断好之后,我们可以定义,当有地图应用的时候...

    Android 实现浏览器跳转APP应用,网页也可以跳转APP

    在Android平台上,实现从浏览器或者其他应用跳转到特定的APP应用是一种常见的功能需求,这通常通过自定义URL Scheme来完成。下面将详细讲解这一过程。 首先,为了使Android应用能够响应来自其他应用(如浏览器)的...

    Android从一个应用跳转到另一个应用

    本教程将详细讲解如何在Android应用中实现从一个应用跳转到另一个应用。 首先,我们需要了解Android中的Intent机制。Intent在Android系统中扮演着消息传递的角色,它用于启动活动(Activity)、服务(Service)或...

    在APP内打开某个网页

    在移动应用开发中,"在APP内打开某个网页"是一个常见的需求,这通常涉及到使用WebView组件。WebView是Android和iOS等操作系统内置的一个控件,它允许开发者在应用程序内部加载和显示网页内容,无需离开应用程序就能...

    h5唤醒APP,如果未下载跳转下载页,如果已下载唤醒APP

    Deep Links则是在Android系统中的类似概念,通过特定的URL可以直接启动应用内的特定页面。这两种链接技术使得H5页面能够识别并处理原生应用的启动请求。 2. **App Scheme**:在Android中,每个APP都可以定义自己的...

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

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

    h5跳到高德app啊啊啊啊

    通过以上步骤,你可以在uni-app项目中实现从H5页面跳转到高德地图App进行导航的功能。这不仅提升了用户体验,也充分利用了原生App的优势。请注意,根据具体需求,你可能需要调整URL Scheme的参数或添加额外的错误...

    5+APP和手机浏览器,唤醒微信App.zip

    与之配合,手机浏览器的唤醒功能则涉及到Android和iOS系统的Intent机制(Android)或URL Scheme(iOS),这两种机制允许应用之间通过特定的协议进行通信。 在Android系统中,Intent是一种消息对象,它可以用来启动...

    根据同一个二维码识别当前系统(iOS或Android),跳转对应App应用市场或下载界面.zip

    【项目资源】: ...鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    微信打开外部链接下载APP引导

    在移动互联网时代,微信作为一款超级应用,拥有庞大的用户基数,很多开发者希望能在微信内实现直接跳转到外部链接并引导用户下载APP。本话题主要探讨如何在微信环境中实现这一功能,同时兼容安卓(Android)和苹果...

    iOS和Android用同一个二维码实现跳转下载链接的方法

    前言 最近一个项目需要iOS和安卓使用一个二维码,让扫描的机器自己识别操作系统实现跳转...PS:该链接在微信环境打开时还是需要手动跳转到手机的浏览器才能跳到下载页面,因为微信内的webView比较特别,所以写了一个al

    unity和安卓交互调用安卓浏览器拉起应用市场

    在某些情况下,开发者可能需要实现Unity与Android原生代码的交互,以便进行特定功能的扩展,例如在游戏内更新(热更新)或者引导用户到应用市场进行评分或查看更新。本文将详细讲解如何实现Unity和Android之间的交互...

    跳转到其它APP应用

    在Android开发中,"跳转到其它APP应用"是一个常见的功能,它允许用户从一个应用程序无缝地导航到另一个应用程序,以此实现多应用间的交互。这个简单的小应用可能就是围绕这一核心概念来设计的,让我们深入了解一下...

    通过超链接url打开一些常见app(scheme)

    在Android开发中,"通过超链接URL打开一些常见APP(scheme)"是一个常见的功能,它涉及到应用程序间的交互和深度链接技术。此功能允许用户点击一个链接,比如在浏览器或者社交媒体应用中,然后直接跳转到特定的应用...

Global site tag (gtag.js) - Google Analytics