微信小程序渐渐覆盖生活的方方面面,工具类小程序也由于它实用与方便结合的优势受到大众追捧,小程序通过开放的API完善自身功能,类似获取地图API可以通过小程序获取定位,通过百度翻译API小程序可以制作翻译小程序。
制作要点有nodejs,百度翻译api,腾讯云服务器,ssl证书,nginx反向代理nodejs项目。下载本项目到本地或者你的服务器,进入server文件夹,输入npm install安装依赖,等待安装完成输入npm start启动后端脚本,app文件夹使用微信开发工具打开,把pages文件夹内index.js中的wx.request中的url改为你的服务器域名或者ip地址,也可以本地调试的话应该可以改为:localhost:端口。做一个小程序翻译助手,非常简单,微信的api只是使用wx.request和onShareAppMessage两个重要的官方api函数,至于逻辑那些只能自己写。
这个小程序,部署在腾讯云服务器里面,在3000端口跑,用Nginx在443端口进行代理,在server文件夹内的server.js负责接收小程序发送过来的请求,并且使用translate.js里面的函数进行翻译,最后把结果反馈给小程序。translate.js里面使用百度翻译的api,主要使用http.request()函数,百度翻译的api很好用。
核心代码
module.exports= function(params, callback) {
if (typeof params === \'string\') {
params = {
query: params
};
}
params = {
from: params.from || \'zh\',
to: params.to || \'en\',
query: params.query || \'\'
};
var data = querystring.stringify(params);
options = {
host: \'fanyi.baidu.com\',
port: 80,
path: \'/v2transapi\',
method: \'POST\',
headers: {
\'Content-Type\':\'application/x-www-form-urlencoded\',
\'Content-Length\': data.length
}
};
varreq = http.request(options, function(res) {
var result = \'\';
res.setEncoding(\'utf8\');
res.on(\'data\', function(data) {
result += data;
});
res.on(\'end\', function() {
//console.log(result);
var obj = JSON.parse(result);
console.log(obj);
var str = obj.trans_result.data[0].dst;
callback(str);
});
});
req.on(\'error\', function(err) {
console.log(err);
setTimeout(function() {
translation(query, callback);
}, 3000);
});
req.write(data);
req.end();
};
参数:
params = {
from: params.from || \'zh\', //原来是什么语言
to: params.to || \'en\', //要翻译为什么语言
query: params.query || \'\' //要翻译的语句
};
使用百度翻译的api,必须知道每种语言,百度翻译使用什么单词表示的:
百度提供的API可以赋予小程序能够实现百度功能,在地图和翻译这一类型的API开放后,会有更多其他商品的接口将接入小程序,届时小程序将泛用于各种场景。
推荐阅读:小程序制作中如何使用事件监听器?
参与讨论
发表评论