关于调用微信浏览器打开链接的问题

leonbingo 2015-03-11 11:34:31
各位,现在有这么一个需求,就是,我仅仅通过一个链接,让用户点击了以后,就直接调用了微信浏览器打开这条链接,不管用户当前是在什么浏览器里面点击的这个链接,比如用户可以在QQ,系统默认浏览器,陌陌,skype等等点击打开。

我现在查询到的资料,只有URL Scheme, 也就是利用<a href="weixin://xxxxxx">link</a> 这一类型的来让用户点击了以后导航到QQ,不过感觉这个也存在问题,至少我测试的几个浏览器就没有起效果,只有QQ浏览器还导航过去,因为本身对URL Scheme也没有找到到相关的资料,没法知道微信有这样的schema可以直接打开链接

另外也曾经查询到有通过二维码扫描直接调用了微信关注,但据说这也是微信的URL Scheme的一种,也有人说现在已经不能用了


请各位提供一下解决办法把,目的就是通过一条链接,点击后用微信内置浏览器打开,这个链接可以在任何的媒介中,不一定是在微信浏览器里面。拜托,分不够可以加的,谢谢了。

...全文
45657 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimHo- 2018-12-14
  • 打赏
  • 举报
回复
@tu_ot ticket是怎么获取的
tu_ot 2018-09-27
  • 打赏
  • 举报
回复
我自己写了一套代码,分享下,后台数据这里发不了,这些的主要前提都是接口的调用

<?php
if($_GET['t']){
// include("admin/config.php");
// include("admin/function.php");
$code = $_GET['t'];
$info = query ( "jump_logs", "where code='" . $code . "'" );
if($info['code'] == ''){
	echo '跳转失败';
	exit(0);
}
if($info['state'] == '1'){
if($info['count'] >= $info['num']){
	echo '跳转失败';
	exit(0);
}
$time = strtotime($info['time']);
	if(time() > $time){
		echo '跳转失败';
		exit;
	}
}else{
	echo '跳转失败';
	exit;
}
if($info['www_url'] == ''){
	echo '请先配置落地页';
	exit;
}else{
	$w_url_code = $info['rl'];
}
?>

<script type="text/javascript">
var ellipsis = ['   ', '.  ', '.. ', '...'];
var index = 0;
var $ellipsis = document.getElementById('ellipsis');
setInterval(function () {
$ellipsis.innerHTML = ellipsis[index++ % 4];
}, 500);</script>

<?php
function get_ticket($code){
	//初始化
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
	$headers = array();
	$headers[] = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_2 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/15B202 UCBrowser/11.7.7.1031 Mobile  AliApp(TUnionSDK/0.1.20)';
	$headers[] = 'Referer: https://m.mall.qq.com/release/?busid=mxd2&ADTAG=jcp.h5.index.dis';
	$headers[] = 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8';

	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	$content = curl_exec($ch);
	curl_close($ch);
	//$arr = json_decode($content,1);
	//if($arr['success'] == '1'){
	//	$shotCode = $arr['shotCode'];
	//}else{
	//	$shotCode = '';
	//}
	//preg_match('/openlink\":\"(.*?)\"}/',$content,$result);
	//$url = $result[1];
	// <!--需要整套跳转代码的联系QQ:3220192183--> 
	preg_match('/href=\"(.*?)#wechat/',$content,$result);
	$url = $result[1];
	return $url;
}
	$time = time()-$info['ticket_time'];
	$minute=floor($time/60);
	query_update ( "jump_logs", "count=count+1". " where code='" . $code . "'" );
	if($minute >= 59){
		//如果超过1小时,更新ticket
		$url = get_ticket($w_url_code);
		if($url){
		query_update ( "jump_logs", "ticket_time='".time()."', ticket='" . $url . "' where code='" . $code . "'" );
		$ticket_url = $url.'#';
		if(strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')||strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')){//安卓百度手机APP
			echo '<script>window.location.href = "bdbox://utils?action=sendIntent&minver=7.4¶ms=%7b%22intent%22%3a%22'.$url.'%23wechat_redirect%23wechat_redirect%23Intent%3bend%22%7d";</script>';
			}else{
				echo '<script>window.location.href = "'.$ticket_url.'";</script>';
			}
		}
	}else{
		$ticket_url = $info['ticket'].'#';
		if(strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')||strpos($_SERVER['HTTP_USER_AGENT'], 'baiduboxapp')){//安卓百度手机APP
			echo '<script>window.location.href = "bdbox://utils?action=sendIntent&minver=7.4¶ms=%7b%22intent%22%3a%22'.$info['ticket'].'%23wechat_redirect%23wechat_redirect%23Intent%3bend%22%7d";</script>';
			}else{
				echo '<script>window.location.href = "'.$ticket_url.'";</script>';
			}
	}
}
?>
tu_ot 2018-09-27
  • 打赏
  • 举报
回复
如果觉得写得还可以的老铁们,帮忙顶一下,谢谢!
tu_ot 2018-09-27
  • 打赏
  • 举报
回复
只是我实现的效果,能帮就帮你们,不是你们需求的忽略吧。不要吐槽我写的东西就好。
qq_42589127 2018-08-01
  • 打赏
  • 举报
回复
现在我也是遇到了这个问题,需求还实现不了
qq_42589127 2018-08-01
  • 打赏
  • 举报
回复
外部链接只能打开微信
monakatyking 2017-04-11
  • 打赏
  • 举报
回复
请问楼主解决了么?同求解决方法
艾芯 2017-04-07
  • 打赏
  • 举报
回复
+1遇到了同样的问题
wangrw21 2017-02-24
  • 打赏
  • 举报
回复
同求 调用微信浏览器打开链接
qjw1022 2017-02-10
  • 打赏
  • 举报
回复
同求,问官方 说是今年3.4月份可能开放接口
C丶A1一sjm 2017-01-12
  • 打赏
  • 举报
回复
有人解决了吗,急求
qq_34170703 2016-03-09
  • 打赏
  • 举报
回复
有木有人能解决
wyx100 2015-07-11
  • 打赏
  • 举报
回复
楼主解决了没
wyx100 2015-07-10
  • 打赏
  • 举报
回复
我了解的是,微信没有公布实现的接口,能实现的是和微信合作的公司,有微信的内部接口
wyx100 2015-07-10
  • 打赏
  • 举报
回复
能详细的描述一下不,也有类似需求
Cesc 2015-07-09
  • 打赏
  • 举报
回复
但目前的确有人做到了,我也实际操作过,但是不知道怎么实现
wyx100 2015-07-08
  • 打赏
  • 举报
回复
现在做不到,微信未提供公共接口
Cesc 2015-07-07
  • 打赏
  • 举报
回复
楼主这个问题解决了吗?
微信OAuth2.0网页授权接口 微信OAuth2.0网页授权接口的thinkphp实现版本,主要实现了oauth网页受权,以及部分其他接口。 使用方法 为什么用OAuth2.0受权? 通过OAuth2.0受权的网页将会获取到打开者的微信信息,甚至包括微信昵称、头像等有用的数据,开发者们可以凭此设计出更多更丰富的页面应用,比如最近一直很火爆的红包类活动。除此之外还有个额外的好处,就是可以控制页面在非微信浏览器中无法打开,可以减少代码被人窥窃的风险。 那么红包类活动是如何使用OAuth2.0受权接口的呢? 1.首先用户打开页面连接(php页面),php接收到请求后将页面跳转到微信的OAuth2.0受权页面,在获取到受权后再次将页面跳转回php服务器;此次跳转中带有用户的各种信息,php服务器记录后返回用户所看到的页面。 2.然后用户转发此页面,在转发的连接中带有自己的标识参数。当好友点击分享后的连接的时候也会重复第1步的步骤,当php服务器发现从微信OAuth2.0受权返回的数据中的用户数据与标识参数对应的分享者的用户数据不一致的时候,则可以判断出有好友打开了分享页面,给用户增加一个红包。 使用方法 AuthAction.class.php ---- 认证基类 IndexAction.class.php --- 测试类 index/Conf/config.php --- 设置 wx_appID 微信公众账号的appid wx_appsecret 微信公众账号的appsecret weixin_token 微信公众账号接口配置信息的Token wx_webauth_callback_url OAuth2.0授权后跳转到的默认页面 wx_webauth_expire OAuth2.0授权Token过期时间默认6500 配置好config.php后在微信公号后台设置index.php/Index/wechatInitAuth进行微信API认证,提示"配置成功"后方可使用。 测试公众号申请与具体的测试步骤见下方。 测试 IndexAction.class.php --- 测试类 申请微信测试公众帐号 微信提供测试用的公众账号,此帐号只能添加100个关注者且只有已关注的用户才可以进行OAuth2.0受权。 点此开通测试帐号 1.开通后将appID、appsecret、Token填入index/Conf/config.php中。然后将接口配置信息中的URL改至php服务器,将地址定位到index.php/Index/wechatInitAuth进行微信API认证,直到提示"配置成功"。 2.点击‘体验接口权限表--OAuth2.0网页授权(仅关注者才能授权)’中的修改,将授权回调页面域名改为php服务器地址。直到出现‘通过安全监测’。 配置完微信测试号后,在微信打开http://项目目录/index.php(例:http://121.40.135.90/weixin_auth/index.php)将会在页面中打印出session中的受权数据,表示测试受权成功。 代码结构 在AuthAction中的初始化函数_initialize中进行了OAuth2.0受权,所有基于AuthAction的控制器都将进行受权过程(除了微信API认证过程wechatInitAuth)。 对于同一用户在受权过期时间内多次打开此控制器的页面,将不会进行多次受权,因为其受权信息记录在session中,以免重复受权,减慢访问速度。受权过期时间在index/Conf/config.php中wx_webauth_expire设置,建议不要大于微信的过期时间7200秒。 注意: 微信OAuth2.0受权分为snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息),AuthAction.class.php默认为snsapi_base,而且session中只记录了snsapi_base中的基础数据,如需要snsapi_userinfo请自行修改。 具体的实现方法见代码注释。

3,154

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧