a. 首先, 微信小程序必须是企业认证的, 否则连webview都无法使用.(这个是基础)
b. webview引用页面的JS加入如下脚本(请自行修改去掉不要的内容)
function InitJSSDK(){
// 显示等待
StartWait();
// 发送请求获取json格式的签名信息
var dt = {};
dt.action = "wx_getjsapiticket";
dt.u = window.location.href; // 如果你的URL中有#, 则只要#之前的部分
$.ajax({
url : C_AJAX_HANDLER_URL,
data : dt,
})
.done(function(msg) {
try{
msg = jQuery.parseJSON(msg);
var iCnt = msg.WXJSAPI.length;
if (iCnt > 0){
var obj = msg.WXJSAPI[0];
wx.config({
debug: false,
appId: obj.appid, // 必填,小程序的唯一标识
timestamp: obj.timestamp, // 必填,生成签名的时间戳
nonceStr: obj.nonceStr, // 必填,生成签名的随机串
signature: obj.signature, // 必填,签名
jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表
});
// 调用成功
wx.ready(function(){
bJSSDKOK = true;
setInterval('UpdateLocation()', C_GET_LOCATION_INTERVAL);
})
// 调用失败
wx.error(function(res){
promptError('JSSDK失败: ' + res.errMsg);
bJSSDKOK = false;
});
}
}
catch(e){}
FinishWait();
})
.fail(function() {
promptError('获取JSSDK参数失败!');
FinishWait();
});
}
c. 服务器响应请求的部分:
(代码概要: 实现了获取签名信息, 并存入数据库; 再次申请时会判断是否已经申请过了, 如果已经申请并且没有过期, 则使用现有的,否则重新申请)
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using YQDHWebsite.DB;
/// <summary>
/// WXHelpler - by ssxbxk
/// </summary>
public class WXHelpler
{
private static readonly string GetTokenUrl = ConfigurationManager.AppSettings["GetTokenUrl"];
private static readonly string GetTicketUrl = ConfigurationManager.AppSetti