hexo/source/_posts/微信调用手机浏览器打开链接.md
2025-02-08 03:18:24 +00:00

43 lines
2.0 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 微信调用手机浏览器打开链接
date: 2024-01-24 12:14:00
categories: 学习笔记
tags:
---
<!--markdown-->不知道大家有没有这样的需求当把app下载连接通过微信发送给他人时在微信中点开这个链接并不能直接下载或者由于这样或那样的原因链接不想在微信打开需要在手机浏览器打开。
那么针对需求,如何解决这个问题呢?
首先就是看看有没有现成的方案,搜索引擎搜索一番,搜来搜去并没有找到现成的开源代码,但是发现了网上有网站提供这种服务:
![3450358770.png](https://bu.dusays.com/2024/01/24/65b0feec3dcac.png)
不过测试版有时效,想长期使用还得付费,那就尝试只能尝试自己解决了。
在测试中发现访问.apk文件时无法下载也无法条状到默认浏览器但是如果访问.doc或者.xlsx这类文件竟然可以直接跳转到默认浏览器中下载那么问题迎刃而解
先使用一个跳板网址,判断用户是否通过手机微信访问,如果是则模拟成成.doc文件将跳转到默认浏览器如果用户并未使用手机微信访问则直接跳转到apk下载地址。
如果是网页链接不想在微信打开,需要在手机浏览器打开的话也是同样的方法,只不过不用跳板网址,直接在页面上判断即可。
核心代码:
```
<?php
if(IsWeiXin()){
Header("Content-type:application/vnd.ms-word");
Header("Content-Disposition: attachment;filename=test.doc");
exit();
}else{
//根据需要选择是否要跳转
$apkUrl = "";//APK下载链接
header("Location: ".$apkUrl);
exit();
}
function IsWeiXin(){
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strpos($ua, 'MicroMessenger') == false && strpos($ua, 'Windows Phone') == false){
return false;
} else {
return true;
}
}
?>
```
功能完美实现,有时间的话我也搭建一个类似的服务,网上这个有点太丑了。