2016-11-16 40 views
2

我正在尝试将Android Deeplink与HTTP服务器集成到node.js中。其实,如果我用快递服务器创建终点,就像如何在node.js中实现没有快递服务器的Android Deeplink

app.get('/deeplink', deeplink({  
    fallback: 'https://na.nor.com', 
    android_package_name: 'com.na.nor' 
})); 

它会正常工作。但实际上我需要与普通的http服务器集成。

+0

这有点含糊。你可以在你想要达到的结果上添加一些细节,理想情况下使用例子吗? –

+0

实际上,我需要将httplink服务器请求处理程序方法的回调作为回调传递给深层链接({fallback:'https://na.nor.com', android_package_name:'com.na.nor' })。 –

回答

2

是的我已经完成了使用HTTP端点工作的工作。无需使用深度链接,而只需要修改后的深层链接库就可以使用HTTP中间件。张贴下面的代码,希望它可以帮助到某人。谢谢

 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);