Android和IOS的浏览器中检测是否安装某个客户端的方法

我们希望更多的用户用我们的产品,更希望能留住更多的用户。这个时候让用户使用客户端的意义就变得格外重要了。

毕竟客户端是实实在在的占据了用户的桌面,每天或多或少都会看到我们的产品。
然后,作为手机端的Web产品,用户通过手机浏览器访问到了我们的页面,我们就希望用户能直接使用或者下载我们的客户端产品了。
最后就有了下载Banner一说。

IOS

说到IOS,非常兴奋的是,自IOS6开始,我们只需要在html里加上meta标签就可以了。
具体的meta标签是:<meta name="apple-itunes-app" content="app-id=504274740" />
当然,更具体的描述,请参看苹果的开发者平台文档:Promoting Apps with Smart App Banners
那IOS6以下呢?
我的回答是:直接展示一个下载banner吧。

Android

针对Android,如果我们细心的话就会发现,很多应用都会一直在后台跑着。关都关不掉。
这么一来就,我们就可以通过给这个后台进程发一个请求,然后通过判断这个请求是否正确响应,来判断是否安装了我们的App。
如果没有正确响应,我们就认为应该是没有安装我们的客户端应用。
基本思路就是这样,我们看代码实现:


代码如下:

(function() {
    var isInstalled,
        url = '_url_', // 找android工程师要吧
        script = document.createElement('script');

script.src = url;
    script.onload = function() {
        // alert('Is installed.');
        isInstalled = true;
    };
    script.onerror = function() {
        // alert('May be not installed.');
        isInstalled = false;
    }

document.body.appendChild(script);
})();

(0)

相关推荐

  • 检测iOS设备是否越狱的方法

    在应用开发过程中,我们希望知道设备是否越狱,正以什么权限运行程序,好对应采取一些防御和安全提示措施. 首先,你可以尝试使用NSFileManager判断设备是否安装了如下越狱常用工具: /Applications/Cydia.app /Library/MobileSubstrate/MobileSubstrate.dylib /bin/bash /usr/sbin/sshd /etc/apt 但是不要写成BOOL开关方法,给攻击者直接锁定目标hook绕过的机会 复制代码 代码如下: +(BOOL

  • iOS 检测网络状态的两种方法

    一般有两种方式,都是第三方的框架,轮子嘛,能用就先用着,后面再优化. 一:Reachability 1.首先在AppDelegate.h添加头文件"Reachability.h",导入框架SystemConfiguration.frame. 2. 在AppDelegate.m中这样实现: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc

  • IOS检测指定路径的文件是否存在

    复制代码 代码如下: - (NSString *)dataPath:(NSString *)file  {      NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"badge"];      BOOL bo = [[NSFileManager defaultManager] creat

  • iOS 检测文本中的URL、电话号码等信息

    要检测文本中的 URL.电话号码等,除了用正则表达式,还可以用 NSDataDetector. 用 NSTextCheckingResult.CheckingType 初始化 NSDataDetector 调用 NSDataDetector 的 matches(in:options:range:) 方法获得 NSTextCheckingResult 数组 遍历 NSTextCheckingResult 数组,根据类型获取相应的检测结果,通过 range 获取结果文本在原文本中的位置范围(NSRa

  • Android和IOS的浏览器中检测是否安装某个客户端的方法

    我们希望更多的用户用我们的产品,更希望能留住更多的用户.这个时候让用户使用客户端的意义就变得格外重要了. 毕竟客户端是实实在在的占据了用户的桌面,每天或多或少都会看到我们的产品.然后,作为手机端的Web产品,用户通过手机浏览器访问到了我们的页面,我们就希望用户能直接使用或者下载我们的客户端产品了.最后就有了下载Banner一说. IOS 说到IOS,非常兴奋的是,自IOS6开始,我们只需要在html里加上meta标签就可以了.具体的meta标签是:<meta name="apple-itu

  • JS判断Android、iOS或浏览器的多种方法(四种方法)

    第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端. 代码如下: <script type="text/javascript"> var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)?

  • Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)

    本文实例讲述了Android开发之在程序中时时获取logcat日志信息的方法.分享给大家供大家参考,具体如下: 今天分享一个在软件开发中很实用的例子,也是这几天在通宵加班中我使用的一个小例子, 在程序中监听Log信息. 为什么说它实用?原因是Android的开发厂商各种修改之后手机和手机之间以后存在很多差异.比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问.这样就给开发适配带来了巨大的麻烦.本来

  • IE6浏览器中window.location.href无效的解决方法

    本文实例讲述了IE6浏览器中window.location.href无效的解决方法.分享给大家供大家参考.具体方法如下: window.location.href是js中跳转功能,很多人在ie6中都会发现window.location.href不能跳转了,下面我给大家来介绍一下其原因与解决方法. 问题代码如下: 复制代码 代码如下: <a href="javascript:void(0);" onclick="javascript:test();">点击

  • VisualStudio Community2019在安装的过程中无法进入安装界面的解决方法

    今天在安装VS2019的时候,在安装的过程中一直无法进入安装界面,在网上找了各种方法试了将近40分钟都没有找到有效的办法,不过就快放弃的时候,问题解决了,哈哈哈!!!! 1.下载地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16(官网) 2.运行之后,读完进度条之后,就退出了,无法进入到安装界面.类似下面的截图,截图是网上找的,懒得自己在重新

  • IE浏览器中图片onload事件无效的解决方法

    故事模式实现是只加载当前浏览的照片和它下面的两张照片,加载照片的时候才会加载和渲染评论区,图片没有加载前会用一个一象素的图片占位,并用一个loading类将显示出一个loading背景图,判断在可视区的时候替换成真正的图片,图片加载成功后删除loading类. 问题出在最后面,测试的时候发现在IE下loading类无法删除,当时代码如下: 复制代码 代码如下: img.src = _src;img.src = _src;img.onload = function(){   _con.delCla

  • Android 8.0升级不跳转应用安装页面的解决方法

    最近开发遇到了个问题,app升级的时候,其他手机都能正常升级,下载完安装包,跳到安装页面进行新版本的安装.但却有用户反映,华为P10和华为Mate 9升级时,怎么也无法跳转到安装页面.起初我以为是华为手机自身系统的问题(因为手上的华为测试机都是正常的),还特地对比了几种配置的华为手机,最后发现,是Android 8.0系统版本的锅,不是手机的问题. 2017年8月22日,Google发布了Android 8.0的正式版,其正式名称为:Android Oreo(奥利奥),Android 8.0强化

  • iOS应用开发中实现页面跳转的简单方法笔记

    作为新手写的笔记,方便自己记忆: 从android转过来iOS的,对于页面的跳转,找了很多资料,现在记录一下页面跳转的方法. 1.用navigationController 2.直接跳(刚刚在网上找到的,不太熟,有错莫怪) 1.建一个RootViewController,在delegate.h 复制代码 代码如下: @property (strong, nonatomic) UIViewController *viewController; @property (strong, nonatomi

  • iOS应用开发中使UITextField实现placeholder属性的方法

    我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入.但是UITextView却没有placeholder属性. 一.猥琐的方法 如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法.思路大概是这样的: 把UITextView的text当placeholder使用. 在开始编辑的代理方法里清除placeholder. 在结束编辑的代理方法里在设置placeholder. 实现方法: 1.

  • iOS App开发中Objective-C使用正则表达式进行匹配的方法

    iOS中有三种方式来实现正则表达式的匹配.现在将他们都记录在这里: 1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @"nijino_saki@163.com": NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *predicate = [NSPredicate predicateWithForma

随机推荐