Santosh Khavekar Santosh Khavekar - 12 days ago 5
HTTP Question

How to implement Android Deeplink without express server in node.js

I am trying to integrate Android Deeplink with a HTTP server in node.js. Actually, if I create an end point with express server, like

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


it will work fine. But actually I need to integrate with a normal http server.

Answer

Yes I have done my job to work it with HTTP end point.No need to require deep-link instead of just modified deep-link library to use with HTTP middle ware. Posting following code ,hope it will help to 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);
Comments