微信小程序实践 – 陌生人地图

共享位置信息的小程序。

3.21 实现动态加载 markers

3.22 增加login & 通过服务器获取 openid

3.23 从服务器获取最新位置并更新 marker 位置

坑:

很多 function 里,需要 bind(this)。

map 的 translateMarker 方法,在动态加载 marker 时,需要等大概10秒以上才能成功找到markerId ,因为这个问题被坑了好久。


微信小程序代码:https://github.com/endpang/maps.cc

服务端代码

get.php

<?php

$redis = new Redis();
$redis->connect('127.0.0.1', 6688);
$redis->select(4);
/**/
file_put_contents("xx.log","[get]".json_encode($_REQUEST).PHP_EOL,FILE_APPEND);
$_REQUEST["id"] = 1;
$_REQUEST["latitude"] = round($_REQUEST["latitude"],4);
$_REQUEST["longitude"] = round($_REQUEST["longitude"],4);
$result = [
    'status' => 1,
    'count' => 1,
    'friend' => [$_REQUEST],
];
file_put_contents("xx.log","[response]".json_encode($result).PHP_EOL,FILE_APPEND);
//*/
echo json_encode($result);

test.php

<?php

$redis = new Redis();
$redis->connect('127.0.0.1', 6688);
$redis->select(4);
/**
$result = [
    'status' => 1,
    'userInfo' => "test",
];
//*/
$file = file_get_contents("https://api.weixin.qq.com/sns/jscode2session?appid=xxx&secret=xxx&js_code=".$_REQUEST['code']."&grant_type=authorization_code");
$user_array = json_decode($file,true);
//file_put_contents("xx.log",$file);
if(!empty($user_array["openid"])){
    $result["status"] = 1;
    $result["userInfo"]["openid"] = $user_array["openid"];
    $redis->set("user_".$user_array["openid"],$file);
}
echo json_encode($result);

发表评论

电子邮件地址不会被公开。