如何在 node.js 中实现没有快速服务器的 Android 深度链接
How to implement Android Deeplink without express server in node.js
我正在尝试将 Android Deeplink 与 node.js 中的 HTTP 服务器集成。实际上,如果我用快速服务器创建一个端点,比如
app.get('/deeplink', deeplink({
fallback: 'https://na.nor.com',
android_package_name: 'com.na.nor'
}));
它将正常工作。但实际上我需要与普通的http服务器集成。
是的,我已经完成了与 HTTP 端一起使用的工作 point.No 需要 deep-link 而不是仅仅修改 deep-link 库以与 HTTP 中间件一起使用.贴出以下代码,希望对someone.Thanks
有所帮助
var file = fs.createReadStream(path.join(__dirname, '/public/index.html'));
var options={
fallback: config.deeplink_fallback,
android_package_name:config.deeplink_package_name
};
var detoken = new stream.Transform({ objectMode: true });
detoken._transform = function (chunk, encoding, done) {
var data = chunk.toString()
Object.keys(options).forEach(function (key) {
data = data.replace('{{' + key + '}}', options[key])
});
this.push(data);
done();
}
var inline = inliner({ basedir: path.join(__dirname, '/public') });
res.statusCode=200;
res.setHeader('Content-Type', 'text/html; charset=utf-8');
var newdt=file.pipe(detoken).pipe(inline);
newdt.pipe(res);
我正在尝试将 Android Deeplink 与 node.js 中的 HTTP 服务器集成。实际上,如果我用快速服务器创建一个端点,比如
app.get('/deeplink', deeplink({
fallback: 'https://na.nor.com',
android_package_name: 'com.na.nor'
}));
它将正常工作。但实际上我需要与普通的http服务器集成。
是的,我已经完成了与 HTTP 端一起使用的工作 point.No 需要 deep-link 而不是仅仅修改 deep-link 库以与 HTTP 中间件一起使用.贴出以下代码,希望对someone.Thanks
有所帮助 var file = fs.createReadStream(path.join(__dirname, '/public/index.html'));
var options={
fallback: config.deeplink_fallback,
android_package_name:config.deeplink_package_name
};
var detoken = new stream.Transform({ objectMode: true });
detoken._transform = function (chunk, encoding, done) {
var data = chunk.toString()
Object.keys(options).forEach(function (key) {
data = data.replace('{{' + key + '}}', options[key])
});
this.push(data);
done();
}
var inline = inliner({ basedir: path.join(__dirname, '/public') });
res.statusCode=200;
res.setHeader('Content-Type', 'text/html; charset=utf-8');
var newdt=file.pipe(detoken).pipe(inline);
newdt.pipe(res);