WeChat에서 현재 위치를 확보하려면 프로젝트가 필요했기 때문에 WeChat 개발 여정을 시작했습니다...
@WeChat JSSDK 문서
weixin.qq. .com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
JSSDK 사용 단계
1단계: 도메인 이름 바인딩
바인딩 도메인 이름에는 첫 번째 수준 도메인 이름이 필요합니다. 하지만 이를 사용할 경우 2차 도메인 이름 아래의 웹페이지에서는 계속 이 인터페이스를 사용할 수 있습니다.
@2단계: JS 파일
http://res.wx를 소개합니다. qq.com/open /js/jweixin-1.0.0.js
페이지에서 https를 활성화하는 경우 res.wx.qq.com/open/js/jweixin-1.0.0.js
3단계: 구성 인터페이스를 통해 권한 확인 구성 삽입
이를 구성하는 것은 더 번거로울 수 있으므로 마지막으로 이야기하겠습니다.
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
단계 4: 준비된 인터페이스를 통해 성공적인 확인 처리
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 });
5단계: 오류 인터페이스를 통해 실패한 확인 처리
wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 });
예: 지리적 위치 인터페이스
wx.ready(function(){ wx.getLocation({ type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' success: function (res) { var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。 var speed = res.speed; // 速度,以米/每秒计 var accuracy = res.accuracy; // 位置精度 } }); });
자세한 내용은 공식 문서가 더 명확함을 참조하세요.
3단계에 대한 구성 지침:
var wxConfigJson = { debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx821bb7356e99a3a7', // 必填,公众号的唯一标识 timestamp: 1446184841, // 必填,生成签名的时间戳 nonceStr: '80262bec-7cd2-4b03-b366-97fab6e91cdd', // 必填,生成签名的随机串 signature: 'fd017d631d63cef32d5f25ea276911bcb0a29782', // 必填,签名,见附录1 jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2};@Html.Raw(new WeChatJS_SDK_Config().GetConfig()) 生成上面的wxConfigJson
다음은 WeChatJS_SDK_Config입니다. 내가 쓴 클래스, funny.
1 public class WeChatJS_SDK_Config 2 { 3 private string _appId; 4 private int _timestamp ;// 必填,生成签名的时间戳 5 private string _nonceStr ;// 必填,生成签名的随机串 6 private string _url; 7 private string _sign; 8 9 public WeChatJS_SDK_Config() 10 { 11 _appId = AccountConfig._appID; 12 _timestamp = Core.GetTimestamp(); 13 _nonceStr = Guid.NewGuid().ToString(); 14 _url = HttpContext.Current.Request.Url.ToString(); 15 _sign = 16 String.Format("jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}", Jsapi_Ticket.GetJsapi_Ticket(), 17 _nonceStr, _timestamp, _url).Md5Entry("sha1").ToLower(); 18 } 19 20 /* Url方法的区别 21 *@Html.Raw("var originalString='"+HttpContext.Current.Request.Url.OriginalString+"';") 22 @Html.Raw("var rawUrl='"+HttpContext.Current.Request.RawUrl+"';") 23 @Html.Raw("var url='"+HttpContext.Current.Request.Url+"';") 24 25 var originalString = 'http://xb.hnjdkj.cn:80/index/home'; 26 var rawUrl = '/index/home'; 27 var url = 'http://xb.hnjdkj.cn/index/home';*@ 28 */ 29 public string GetConfig() 30 { 31 var res = string.Format( 32 "var wxConfigJson = {{debug: {0}, appId: '{1}', timestamp: {2},nonceStr: '{3}',signature: '{4}',jsApiList: ['getLocation'] }};", Kits.AppSettings("WeChatDebug"), _appId, _timestamp, _nonceStr, _sign); 33 return res; 34 } 35 36 }
[ 관련 추천】
1. WeChat 공개 계정 플랫폼 소스 코드 다운로드
2. WeChat 개발의 수명주기 기능에 대한 예제 튜토리얼
3. 4. WeChat 애플릿 결제 기능 개발 오류 설명 summary위 내용은 WeChat 개발 소개(jssdk 개발)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!