如何通过应用A给流应用B导流

传统的应用A导应用B,比如积分墙、换量广告、各种广告sdk....他们的导流效率是非常低的。
因为原生App的下载、安装、启动有很高的门槛,进一步导致广告的效果很差。

但如果应用B是一款流应用,就可以大幅降低折损,提升广告投放效果。
流应用的下载、安装、启动是三合一的,并且全过程完成时间在2-5秒之间,非常快。调了下面的代码,如果手机上已经有了流应用B,则启动之;如果没有,则安装并启动之。

如何在应用A里给流应用B导流?我们分3种情况。

  1. 应用A是5+ App,即本身是使用5+runtime打包的
  2. 应用A是流应用,即一个流应用给另一个流应用导流
  3. 应用A不是上面2种情况的普通App。

以下的示例代码里,同时判断了3种情况,先上代码

// 判断程序是否已安装  
function isInstalled(pn){  
    var main = plus.android.runtimeMainActivity();  
    var pm = main.getPackageManager();  
    var PackageManager = plus.android.importClass(pm);  
    try{  
        var pi = pm.getPackageInfo(pn,PackageManager.GET_ACTIVITIES);  
        if(pi){  
            return true;  
        }  
    }catch(e){  
    }  
    return false;  
}  
function openStream(id){  
    if(navigator.userAgent.indexOf('Html5Plus')<0){//非5+环境  
        location.href='http://m3w.cn/s/'+id;  
    }else if(navigator.userAgent.indexOf('StreamApp')>=0){//流应用环境  
        plus.stream.open({appid:id});  
    }else{// 非流应用环境  
        if(isInstalled('io.dcloud.streamapps')){//安装了流应用  
            plus.runtime.openURL('streamapp://s/'+id,null,'io.dcloud.streamapps');  
        }else if(isInstalled('com.qihoo.appstore')){//安装了360手机助手  
            plus.runtime.openURL('streamapp://s/'+id,null,'com.qihoo.appstore');  
        }else{//未安装流应用环境  
            plus.runtime.openURL('http://www.dcloud.io/streamapp/');//调用系统浏览器打开流基座下载页面  
        }  
    }  
}  

在5+App里安装启动流应用

userAgent中如果包含Html5Plus字符串,则表示当前运行环境支持5+ API,否则表示当前运行环境不支持5+ API。
if(navigator.userAgent.indexOf('Html5Plus')<0){//非5+环境
满足此条件则表示运行环境不支持5+ API,此时可引导用户下载流应用运行环境。

在一个流应用中安装启动另一个流应用

userAgent中如果包含StreamApp字符串(navigator.userAgent.indexOf('StreamApp')>=0),则表示当前运行环境支持流应用,此时可通过plus.stream.open方法启动流应用。

非流应用环境

在非流应用运行环境中,我们可以通过url scheme来启动流应用,目前在“360手机助手”和“流应用”应用中已内置流应用引擎,可以通过5+ API(plus.runtime.openURL)方法来启动url scheme,其格式为:
streamapp://s/%APPID%
其中%APPID%为要启动的流应用APPID。
注意上面的示例代码是js的,实际在原生App中想调起流应用,需要写原生代码,原理也还是url schemes。

注:isInstalled方法使用native.js来判断当前设备上是否安装指定包名的应用。

启动流应用时如何传递参数

如果要调起同时传递参数,那么在调起url后面直接加问号参数。这个是启动大众点评外卖并进入某饭馆的url
http://m3w.cn/s/H5BCD03E4?scene=share&arg=page%3Dshop%26id%3D2380186&__streamapp
这样的参数在启动后,可以通过plus.runtime这个api接收http://html5plus.org/doc/zh_cn/runtime.html#plus.runtime.arguments
这种机制,可以实现内容直达,尤其适合分享直通车等业务场景。

常见需调起的流应用的appid

手机京东 W2Am.sjjd.com
淘宝 W2Am.taobao.com
美团 W2Ameituan.com
卖座电影 H5A0B1958
e代驾 W2Aedaijia.cn
唯品会 H52588A9C
一号店 W2Am.yhd.com
去哪儿旅行 W2AH5E349CB7
携程酒店 H5B5EEFBB
途牛机票 W2AH56B3FED7
艺龙旅行网 W2Am.elong.com
趣趣游戏 H5E7A7BE6
传奇世界 H55269FFC
决战沙城  H54AA3D1F

如果你的app流量较大,希望变现,可以邮件stream@dcloud.io,我们与列表里的这些开发商都有商务推广分成协议。
比如在你的app中给手机京东流应用导流,产生的订单你就可以拿到提成。

1 分享 关注
菜鸡

要回复文章请先登录注册