<?php

header("Access-Control-Allow-Origin: https:// ");

$version = PAPI_GetSafeParam('version');

//设置缓存
$arr = [];
$down_path = '';
$mem_key = "get_app_version";
$down_path = $mem->get($mem_key);

//对象转化为数组函数
function xmlToArrayElement($getData) {
$data = array();
foreach ((array) $getData as $key => $value) {
$data[$key] = !is_string($value) ? xmlToArrayElement($value) : $value;
}
return $data;
}

if(!$down_path){
//读取xml文件中的版本号
$file_path="version.xml";
$file_arr = file_get_contents($file_path);
$file_arr = simplexml_load_string($file_arr, 'SimpleXMLElement', LIBXML_NOCDATA);
$xml = xmlToArrayElement($file_arr);
$down_path = $xml['path'];
$mem->set($mem_key,$down_path,0,MEMCACHE_MEDIA);
}

$arr['down_path'] = $down_path;

if($version) exit(json_encode($arr));

//判断是否是微信
function is_Weixin()
{
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false)
{
return true;
}
return false;
}

//判断是否是安卓
function is_Android()
{
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false)
{
return true;
}

return false;
}
//判断是否是ios
function is_Ios()
{
if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') != false)
{
return true;
}
return false;
}

//是微信打开情况下直接跳转下载页面
if(is_weixin())
{
header("Location:https://a.app.qq.com/o/simple.jsp?pkgname=com.deskmate100");
}

if(!is_weixin())
{
if(is_Android())
{
header("Location:{$down_path}");
}
else if(is_Ios())
{
header("Location:https://itunes.apple.com/cn/app/id980606650");
}
else
{
header("Location:{$down_path}");
}
}

扫二维码 下载app的更多相关文章

  1. 手机扫描二维码下载APP,根据操作系统不同自动下载

    Android和IOS手机扫描二维码下载APP,根据OS不同,自动处理相应下载操作.IOS自动跳转至AppStore应用下载页,Android自动下载应用的apk包. <script type= ...

  2. 生成扫描二维码下载app的二维码的方法

    进入APP store苹果应用程序商店,根据分类找到你要生成二维码的APP,然后在浏览器连接里找到ID后的一串数字就是APP的应用ID了. 安卓系统的appid 在电脑浏览器中打开应用宝官网,http ...

  3. 扫二维码下载apk并统计被扫描次数(及微信屏蔽下载解决方案)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5395715.html 需求:想让用户扫描一个二维码就能下载APP,并统计被扫描次数. 两种实现方法: 1.一 ...

  4. 制作IOS企业版App网页扫描二维码下载安装

    有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...

  5. 使用扫描二维码打开app

    应该不少人遇到过这种需求,扫描二维码打开app如果用户没有这个app则提示它跳转. 用网页直接来调用app是不打可能的,必须原生那边先做一些配置. 首先,安卓和苹果的调用方法是不同的. 所以我们需要先 ...

  6. 关于微信扫描二维码下载apk文件的细节设计

    微信使用的人数越来越多,渐渐的用户形成了一种习惯,扫描二维码的时候,也会打开微信去扫描,但是微信不支持第三方的链接下载,有些厂商已经发现了这一特点,所以在使用二维码下载自家的app时,会做一个提示,引 ...

  7. 网页授权——扫二维码获取openid

    最近做微信公众平台开发项目时遇到这样一个功能需求:生成一个特定url的二维码,用户扫描二维码后跳转到这个url指定的页面,并在这个页面获得用户的openid.这个功能主要涉及到两方面的技术:生成二维码 ...

  8. jenkins 安卓打包生成二维码下载

    先来张图看看吧 构思 jenkins gradle 打包apk文件,python myqr 模块生成二维码 放入nginx 访问图片的路径,apk安装包放在 nginx 下载目录. 环境 centos ...

  9. 让自己的apk可以被别人用二维码下载

    通过二维码下载的流程是, 1.截获地址当有一个url被二维码扫描后的被截获,请先确认能够被截获. 2.接受intent无论是把这个消息的地址发送给activity,还是reciver,都要进入到你的程 ...

  10. MISC-吹着贝斯扫二维码

    题目 [安洵杯 2019]吹着贝斯扫二维码 解压附件,有36个文件和一个压缩包,压缩包带密码和备注 分析 文件类型 随便打开一个不明文件,是jpg图片啊(FF D8 FF) 改一个试试,有一个小块二维 ...

随机推荐

  1. SpringBoot 块形式的配置文件写法(简单示例)

    1.配置文件写法 spring: profiles: dev quartz: auto-startup: true --- spring: profiles: local quartz: auto-s ...

  2. Springboot+Vue实现短信与邮箱验证码登录

    体验网址:http://mxyit.com 示例 1.新增依赖 <!-- 短信服务 --> <dependency> <groupId>com.aliyun< ...

  3. NXopen create chamfer tool

    1 void Create_chamfer_tool( char *toolName,double 直径,int 刀具号) 2 { 3 NXOpen::Session *theSession = NX ...

  4. Route路径

  5. 【python/pyside2】向QVBoxLayout添加滚动条

    import sys from PySide2.QtWidgets import * from PySide2.QtGui import QFont from PySide2 import QtCor ...

  6. TIDB-DM数据迁移第三部(集群管理)

    1.对现在 dm 集群进行缩容,将 free 状态的 worker 下线. tiup dm display dm-test 查看 free 状态节点 tiup dm scale-in dm 172.1 ...

  7. eclipse配置tomcat环境

    Eclipse配置tomcat环境 第一步:进行下面操作: window–>Preference–>Server–>Runtime Environments ->Add 搜索s ...

  8. Vue 使用Lodop进行标签(条码)打印

    一.使用到的插件:vue-barcode(vue条形码插件),Lodop打印控件(我这里使用windows64版,所以以此进行举例说明.). 详述:前者(指vue-barcode)针对在前端界面上观察 ...

  9. eNSP报错41解决方法

    1.点击右上角的菜单 2.工具>>注册设备,全部勾选,然后注册,就行了.

  10. pytest_runtest_makereport 获取pytest的测试结果和caseid

    目的: 自动获取pytest case执行结果和caseid 存为变量,后续可以和case管理工具集成 @pytest.hookimpl(hookwrapper=True, tryfirst=True ...