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);
})();
相关推荐
-
检测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
随机推荐
- FLEX 获取DataGrid行号和列号示例代码
- PowerShell中直接输出转义字符或变量名称的方法
- jquery内置验证(validate)使用方法示例(表单验证)
- Javascript实现图片轮播效果(一)让图片跳动起来
- JavaScript对象学习经验整理
- Win2008 server + IIS7 设置身份模拟(ASP.NET impersonation)
- PHPMailer 中文使用说明小结
- PHP文件锁函数flock()详细介绍
- Python中的rfind()方法使用详解
- Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- 浅谈PHP中foreach/in_array的使用
- JavaScript Alert通用美化类
- Java中HttpServletResponse响应中文出现乱码问题
- MongoDB使用小结:一些不常见的经验分享
- 使用jQuery简化Ajax开发 Ajax开发入门
- Windows下的PHP安装文件线程安全和非线程安全的区别
- C/C++实现八大排序算法汇总
- 基于java中子类的继承性的应用介绍
- Java 使用 Graphql 搭建查询服务详解
- android实现读取、搜索联系人的代码