mobLink

概述

mobLink封装了Mob官方MobLink SDK的功能。通过该模块开发者可生成不同渠道的推广链接,从而可以追踪新安装(或新注册)用户来源,给下线推广提供了解决方案,同时从Web端打开的页面,可直达App页面,一键唤醒App;首次安装App,即可恢复对应场景。场景还原可以帮助开发者提升App活跃度,降低用户在Web端跳转至App过程中的流失率,新用户在首次打开App时,呈现正是用户想看的内容页面,大大提高用户转化率。MobLink打破了App孤岛 实现Web与App的无缝链接。

模块特点:

① App未安装情况下,通过推广链接可以下载App,并且首次打开App即可获取到推广链接中的参数,这给追溯新用户安装或注册来源提供了解决方案。

② 从Web端打开的页面,可直达App页面,一键唤醒App;首次安装App,即可恢复对应场景。场景还原可以帮助开发者提升App活跃度,降低用户在Web端跳转至App过程中的流失率,新用户在首次打开App时,呈现正是用户想看的内容页面,大大提高用户转化率。;

③ Mob数据后台提供实时反馈的App启动数、应用新增数、页面分享浏览数,开发者可以随时了解用户分享行为和应用拉新情况;

④ 一行代码快速实现网页跳转功能,开发者可以在管理后台实时改变按钮样式,包括应用图标、应用名称、标语、颜色等,保持App一致的视觉体验;

⑤ 多浏览器和终端的适配;

⑥ 接口集成简单,几个步骤即可集成。降低了开发成本,提高了开发效率;

模块适用场景:

① 追溯新用户安装或注册来源,用户通过推广链接可直接打开App注册页,若App未安装则下载安装,同时进入App后开发者能够获取推广链接的信息,从而知道新用户来源。

② 形成上下线关系,用户进入App注册后开发者能够获取推广链接的信息,通过来源或其他参数可形成用户间的上下线关系。

③ 资讯类App,当用户在分享出去的web页面浏览资讯后,引导用户跳转到App,在App上提供给用户更好的体验,也提高了App安装量。

④ 视频类App,当用户在分享出去的web页面播放视频后,引导用户跳转到App,在App上提供给用户更好的体验,也提高了App安装量。

⑤ 直播类App,当用户在分享出去的web页面收看直播后,引导用户跳转到App收看直播,在App上提供给用户更好的体验,也提高了App安装量。

⑥ 电商类App,当用户在分享出去的Web页面查看某个商品时,点击“立即购买”跳转到App,进而做下一步处理。

⑦ 票类(机票、汽车票等)App,当用户在分享出去的Web页面选择出发点和终点后,跳转到App把查询结果呈现给用户。

要使用该模块,开发者需要到Mob官网申请相应App Key等。


测试widget下载链接:https://community.apicloud.com/bbs/thread-123933-1-1.html

申请步骤

1 注册Mob官网账号并登录

到Mob官网http://www.mob.com注册并登陆,分别点击右上角的“注册”和“登入”按钮,分别进行注册和登入即可。

2 添加应用,并给应用添加moblink功能

登陆后在Mob首页点击右上角的“进入后台”按钮进入后台。进入后台后如图,点击左上角的"添加应用"按钮,在弹出的输入框中输入应用名后保存即可,新创建的应用包括Android和iOS两个平台。创建完应用后点击左侧栏的"MobLink"以便添加MobLink功能,点击左侧栏的"MobLink"后要注意,此时会弹出一个选择框,选择经典版mobLink即可,因为本模块使用的mobLink版本是2.2.*,对应经典版的mobLink,添加完MobLink功能后,在MobLink一项下会3个子选项,分别是“概况”,“基础配置”,“页面配置”,相关配置见下面的步骤。





3 获取App Key

如图点击“概况”可查看应用的App Key,右边是App Secret,点击“显示App Secret”即可复制。



4 MobLink功能的基础配置,重要!

如图,点击“基础配置”,配置相关参数,带*号的是必填项,其中两个平台的 "下载/引导地址" 和应用宝的下载地址都是在点击链接后手机上未安装有App,moblink就会链接到这里配置的下载地址下载App,这里的下载地址可以直接链接到app文件地址(apk文件或苹果应用商店),也可以自己做一个页面,该页面提供下载按钮,或直接使用第三方的下载页面,如fir.im,建议使用fir.im (这是网址)。

注意:URI Scheme项配置的格式必须是“xxx://”,Android的URI Scheme项必须是lovemoblink:// ! 因为模块需要,Android的URI Scheme已经写入到模块包中,所以开发者后台的URI Scheme必须与模块包中的一致,即是lovemoblink:// ! ios 的 URI Scheme开发者可自定义(随意),但必须是小写。 如图所示。iOS的“Universal Link”必须打开!否则无法从web跳到App。Android的“App Links”关闭即可,“指纹证书(SHA256)”一项可不配置。

由于在微信中不能够直接跳转到app,开启应用宝跳转功能可解决这个问题,所以开发者要配置应用宝下载链接,配置链接前app需要上线应用宝(搜索 腾讯开放平台),对于ios,在腾讯开放平台后台需要配置苹果商店的链接,使其能够在苹果商店能够找到你的app。ios、Android都要开启应用宝跳转功能,如图所示。

底下的场景恢复有效时间设置成24小时即可。多下载地址可不设置,多下载地址的功能用参数即可实现。

注意:修改配置后必须点击右上角的 保存 按钮才能生效。



5 分享页面的配置和获取需要导入的js代码

(1)如图,点击“页面配置”,这里是可以配置分享页面中“打开App”按钮所在横幅的样式。



(2)点击顶部中间的"引用JS文件"这几个字,进入下面界面,开发者可以在这里获取分享页面(指getShareUrl方法中sharePage参数制定的页面)需要导入的js代码,如图,红色框中的代码一定要记得加入到分享页面中,这行代码包含了你的App key。另外如图标注:path字段在本模块中不需要,开发者需要自行删除path字段。关于分享页面的代码如何写在下面的getShareUrl方法中sharePage参数也有说明。





config.xml的配置

Android配置项

获取到App Key和App Secret后需要在config.xml中配置:
配置feature

  • featureName:loveMobLink
  • paramName:MobAppKey MobAppSecret

MobAppKey MobAppSecret分别为在步骤3获取到的App Key和App Secret。配置示例见下面。

iOS配置项

  • preference名称:urlScheme
  • 值:填写你在mob后台配置的iOS的URI Scheme值,注意这里不包含"://"

配置示例(Android和iOS):

    <!--以下是iOS配置项-->
    <preference name="urlScheme" value="melink" /><!--填写你在mob后台配置的iOS的URI Scheme值,注意这里不包含"://"-->
    <!--以下是Android配置项-->
    <!--这里Android不需要配置scheme,mob后台的android scheme必须是lovemoblink://,见步骤4说明-->
     <!--loveMobLink,MobAppKey,MobAppSecret都是固定值-->
     <feature name="loveMobLink">
       <param name="MobAppKey" value="1e98462aw863d" /><!--换成你的mob的app key-->
       <param name="MobAppSecret" value="99a44c404872dwd137b2aaec99ff0" /><!--换成你的mob的app secret-->
    </feature>

widget\res\Info.plist的配置

该文件是给iOS平台配置的文件,在widget\res下创建文件名为Info.plist的文件,Info.plist内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>MOBAppKey</key><!--固定key值-->
    <string>1e984952dge2d</string><!--换成你的mob的app key-->
    <key>MOBAppSecret</key><!--固定key值-->
    <string>5dg6s2nl04872d103cd137kd85c9w852</string><!--换成你的mob的app secret-->
</dict>
</plist>

widget\res\UZApp.entitlements的配置

该文件是给iOS平台配置的文件,在widget\res下创建文件名为UZApp.entitlements的文件,UZApp.entitlements内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key><!--固定key值-->
    <array>
     <!--这里换成你在mob后台获取到的iOS的“Universal Link”值-->
        <string>applinks:7sel.ulml.mob.com</string>
    </array>
</dict>
</plist>

对于iOS,为确保能正常跳转,证书必须开启Associated Domains功能,请到 https://developer.apple.com,选择Certificate, Identifiers & Profiles,选择相应的AppID,开启Associated Domains。注意:当AppID重新编辑过之后,需要更新相应的mobileprovision证书。更新mobileprovision证书步骤请查看http://docs.apicloud.com/Dev-Guide/iOS-License-Application-Guidance 中的 "云编译mobileprovision发布证书制作"或"云编译mobileprovision测试证书制作"。
如果证书没有开启Associated Domains功能,云编译时会报以下错误,请开发者注意。

模块接口

initMobLink

初始化本模块,该方法无参数,需要在调用本模块其他3个方法前调用该方法,一般放在win或frame的初始化方法中。

initMobLink()

示例代码

    function apiready() {//frame或win的初始化方法
        var demo = api.require('mobLink');
        demo.initMobLink();
    }

可用性

iOS,Android系统

可提供的1.0.0及更高版本

getShareUrl

获取分享的Url(推广链接),获取该链接后用户在手机浏览器打开该链接(页面),点击"打开App"按钮可调起自己的App。若点击按钮后手机没有安装App,则会弹出下载框供用户下载安装App。获取该Url后可用微信、QQ等第三方分享功能对Url进行分享,也可直接将该Url直接复制到手机浏览器地址栏打开,这样也可以看到效果。跳转到App后开发者可根据需求打开新的前端页面。该方法为耗时方法,若需要多次使用该链接且传入的参数不变,开发者可将结果保存起来供第二次使用,无需调用该方法多次,以节省资源。

注意:用于分享的链接必须是经过getShareUrl生成的链接,以便能确保正确传参,而不是直接用前端页面(sharePage)的地址分享,getShareUrl生成的链接会以mobid=xxxx结尾。

getShareUrl({params},callback(ret))

params

source:

  • 类型:字符串
  • 描述:(可选项)默认""。用于标记链接的来源(链接属于谁的),通过该字段可得知安装或注册App的来源。这个参数可在用户通过链接打开App后通过getUrlParams获取,从而得知用户来源。

params:

  • 类型:json字符串
  • 描述:(可选项)默认{}。开发者自定义的参数,以键值对的形式提供。这些参数可在用户通过链接打开App后通过getUrlParams获取。

sharePage:

  • 类型:字符串
  • 描述:(必填)。用于分享的前端页面地址,该页面由开发者自行定义,需要按照Mob的规则添加相关代码。如下:

<!-- 注意: 以下是sharePage所在页面的代码规则,是服务器中的页面,不是widget中的页面 -->

<!-- 下面这行从mob后台获取,参照文档中的第5步,类似以下代码-->
<script type="text/javascript" src="//f.moblink.mob.com/3.0.1/moblink.js?appkey=这里换成你的app key"></script> 
<script type="text/javascript">
/*
初始化MobLink,页面上有多个元素需要跳转时使用数组方式,有多少个元素需要跳转就有多少个大括号,
el: 固定键值,表示网页上Element的id值,该字段为空或者不写,则表示使用MobLink后台配置的 **浮层配置** 上的打开按钮,即第5步配置的浮层配置。注意:该字段支持selector方式:支持以下3种方式: 1.'.class' 2.'#id1' 3.['#id1','#id2']。
params: 固定键值, 网页需要带给客户端的参数
*/
MobLink([
{//mob后台的代码例子中含有path字段,在本模块中path字段不需要,如果有path字段则需要删除,见第5步第2张图的说明。
el: '#abutton',//abutton为元素的id值,注意前面要加#号
params: {
     a1: 'a1',//自定义key,value
     a2: 'a2',
 }
},
{
 el: '#bbutton',
 params: {
     b1: 'b1',
     b2: 'b2',
 }
}
])

    </script>

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回获取链接状态及链接字符串
  • 内部字段:
{
    status:1,     //1:获取成功,0:获取失败
    msg:"sharePage为空",//错误信息,status为0时有该字段
    shareUrl:"http://f.moblink.mob.com/demo/b?mobid=nCS"//分享链接,status为1时有该字段
    //获取到shareUrl后,可用微信、QQ等第三方分享功能对shareUrl进行分享,也可将该Url直接复制到手机浏览器地址栏打开,这样也可以看到效果。
}

示例代码

var demo = api.require('mobLink');
demo.getShareUrl({
    sharePage:"http://f.moblink.mob.com/demo/b",
    params:{"key1":"value1","key2":"value2"}, 
    source:"应用宝"
},function(ret){
    if(ret.status){
        alert("分享url:"+ ret.shareUrl );
    }else{
        alert("获取失败  "+JSON.stringify(ret) );
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getUrlParams

获取参数的方法。当从web跳到App后,参数也跟着传到了App,使用该方法可以获取到参数,参数包括getShareUrl中设置的参数,也包括网页中设置的参数。当用户点击分享链接(通过getShareUrl方法获取)进入分享页面,点击相应按钮调起App后,该方法可获取分享链接中的参数,即调用getShareUrl方法时传入的params和source参数。同时当分享页面也设置了参数(见getShareUrl方法中的说明),该方法也能获取到网页中设置的这些参数。从而达到追踪新安装(或新注册)用户来源等目的。若点击"打开App"按钮后手机没有安装App,则会跳转到后台配置的下载地址供用户下载安装App,此时在用户第一次打开App时也能获取到相应参数!

注意:由于从Web跳到App需要一定的时间,所以该方法在App刚启动时需要延时执行,使用setTimeout设置延时,一般延时两三秒即可。

小技巧:若你想从web跳到App后打开不同的前端页面,可在获取到参数后,根据参数判断打开新的前端页面即可。

getUrlParams(ret)

ret

  • 类型:JSON对象
  • 内部字段:
{
    "source": "应用宝",//对应getShareUrl方法的source参数
    "params": {//对应getShareUrl方法的params参数以及在sharePage页面设置的键值对
        "key1": "value1",
        "key2": "value2"
    },
    "time": "2018-08-02 18:05:21",//参数从Web传到App的时间
    "status": 1 //1:获取成功  0 : 获取失败
}

示例代码

function apiready() {
    var demo = api.require('mobLink');
    demo.initMobLink();
    setTimeout("getPamrams()", 2000);//延时2秒执行
}
function getPamrams() {
        var demo = api.require('mobLink');
        demo.getUrlParams(function(ret){
            console.log(JSON.stringify(ret));
            if(ret.status){
                alert("获取成功  "+JSON.stringify(ret) );
            }else{
                alert("获取失败  "+JSON.stringify(ret) );
            }
        });        
}

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本