iOS
Q1:moblink中跳转到引导界面,不跳转到app?
A1:检查后台配置的URL Scheme是不是和客户端里的URL Scheme一致,注意大小写,第二检查后台Universal Link是否和客户端Universal Link填写一致,第三可以根据这个链接https://7pb6.ulml.mob.com/.well-known/apple-app-site-association把里面的UL(7pb6.ulml.mob.com)换成自己的Universal Link,加载之后会下载下来一个json文件,里面会有Bundle id和Team id,看下自己的后台和证书里的Team id是否和这里的一致。
Q2:moblink中如何不同bundle id之间多渠道跳转?
A2:moblink中暂时不支持2个不同bundle id的app互通唤醒;
Q3:获取mobid失败,moblink中报Error Domain=MOBFErrorDomain Code=100006 "(null)" UserInfo={status=400, error=appkey illegal} ?
A3:配置appkey的时候多了一个回车导致;
Q4:moblink中点击打开app按钮,会跳转到app,又会跳转到Safari的引导页的问题?
A4:把这个注释掉就可以,也可以把我们的host[UIApplication sharedApplication] openURL:webUrl];也判断进去就行了也判断进去就行了
Q5:moblink中js 里面写的 params 没有被带到客户端?
A5:那是因为后台打开了兼容模式,走了老的js,才会出现;
A6:这个是因为path没有传值,后台路由没有配置导致;
Q7:moblink不走回调,报错问题Config Error: appKey is empty?
A7:配置appkey多加了空格;
Q8:mobid的解释,是用来做什么的?
A8:用户客户端调用接口传入参数,生成mobid,分享出去后链接里携带mobid,网页上也集成了moblink,如果网页上有新增参数会新生成一个mobid,点击网页上的浮窗打开按钮,跳转到App端,会携带mobid,moblink app端根据mobid向服务器请求解析mobid,会返回用户传入的参数,这样就实现了数据的传递。
Android
Q1:问题详情:用户没有安装应用,点击分享链接无法正常跳转到下载页面
A1:解决方案:
第一步排查用户的配置是否有误。JS中查看appkey是否填写有误<script type="text/javascript" src="//f.moblink.mob.com/3.0.1/moblink.js?appkey=1ea90b79ee1c3"></script>如果用户配置的是专业版本,分享链接配置的是:<script type="text/javascript" src="//1q.t4m.cn/applink.js"></script>则查看App Links是否填写错误。如果配置正确,让用户测试下官网的二维码Demo,因为有的机型系统浏览器,以及部分社交应用(如KakaoTalk)目前无法正常跳转到下载页面,这个是长久以来都存在的问题,已经反馈给PM和研发同事,可能短期不会解决掉。
还有一种情况比较特殊:就是当用户在Mob后台创建了经典版本的应用,并没有及时配置信息,然后直接升级到专业版本并开启了兼容模式。因为在兼容模式开启的情况下,专业版配置或者修改了信息也无法生效。这种情况导致用户无法正常跳转到下载页面。解决方案,让用户关闭兼容模式;除此之外需要注意一点:兼容模式开启的情况下,专业版配置或者修改了信息是不会生效的。比如,你Mob后台专业版本开启了兼容模式,这时候更改了下载链接,保存后测试,还是跳转到之前设定的下载链接,而不是更改后的下载链接。
Q2:问题详情:新用户集成MobLink时该推荐用户使用专业版还是经典版本?
A2:解决方案:
推荐用户使用专业版,移动端和Mob后台都使用专业版本。专业版本提供更多选择,(第一种情况目录有问题不建议使用,于2019-0-8反馈,有待研究,建议使用第二种)第一种情况:如果用户没有自己要分享的链接则用户可以分享Mob后台提供的App Links 拼接上获取到的Mobid进行分享。分享的链接形式为:http://1q.t4m.cn/A3iae2 这里的A3iae2是获取到的Mobid。第二种情况:如果用户有自己要分享的链接,那么同之前经典版本一样,要在分享的链接对应的网页中添加Mob后台提供的js代码。与经典版本不同的就是引入js脚本文件声明不同。
<!--<script type="text/javascript" src="//f.moblink.mob.com/3.0.1/moblink.js?appkey=1ea90b79ee1c3"></script>--> 这是经典版本的引入js声明代码
<script type="text/javascript" src="//1q.t4m.cn/applink.js"></script>
/*
* MobLink 支持数组=>MobLink([...]) 和对象=>MobLink({...})
* 页面上有多个元素需要跳转时使用数组方式,仅单个元素时可以使用对象的方式进行初始化
* el: 表示网页上Element的id值,该字段为空或者不写则表示MobLink默认浮层上的打开按钮(注意:必须为元素id,以#开头)
* path: 对应App里的路径
* params: 网页需要带给客户端的参数
*/
MobLink([
{
el: "",
path: "demo/a",
params: {
key1: "value1",
key2: "value2",
}
},
{
el: "#openAppBtn",
path: "demo/b",
params: {
key1: "value1",
key2: "value2",
}
},
]);
Q3:问题详情:MobLink是否支持多渠道场景还原
A3:问题描述:
例如用户是开发游戏的,多渠道打包了,这样用户相当于有多个相同的游戏,只是包名不一样。如果A是从应用宝下载的该游戏,而B是从360渠道下载的该游戏,A和B用户本质是同一款游戏,只是包名不同,A这时候给B分享了一个连接,B点击后可以正常进行场景还原吗?
解答:
不支持,包名不一样对于MobLink来说其实是两个应用,就像iOS的bundleID不同,这样的话是不能互相还原的。
Q4:问题详情:Mob后台中的兼容模式是什么意思?
A4:解决方案:
兼容模式指的本来如果“已经使用了”(注意:一定要是之前已经使用了经典版本的用户)客户想要使用专业版的时候可以升级到专业版,此时由于部分用户移终端不能及时升级到专业版,所以需要启用兼容模式。注意:但是在兼容模式下,不建议修改基础配置信息,并且兼容模式开启的情况下,专业版配置修改了也无法生效。所以新用户建议直接使用专业版,移动端和mob后台都直接使用专业版本集成。分享链接不要使用短链接(正常用户应该不使用短链接)。
Q5:问题详情:Mob后台中的“路由配置”,配置后无法再进行更改。
A5:问题描述:
MOBLINK专业版,Mob后台可以进行路由配置,配置后无法进行修改,只能添加。
解答:
这是产品设计时规定的,并不是后台的Bug,原因是防止用户轻易更改出现问题。该问题可以进行优化,如果咨询的开发者数比较多,PM那边会进行考虑更改,目前咨询的开发者很少,并不放开更改的权限。
Q6:用户没有安装应用宝,点击分享的链接后跳转到应用宝下载页面
A6:问题描述:
用户的测试机没有安装应用宝,点击分享的链接,从浏览器中打开无法场景还原,而是跳转到应用宝的下载页面。该问题需要进步研究,初步判定是微信应用宝适配的问题。目前微信必须要借助应用宝实现场景还原。
Q7:MobLink支持QQ浏览器跳转吗?
A7:Android MobLink使用QQ浏览器无法实现场景还原,原因是QQ浏览器不支持Scheme跳转。所以Android Moblink无法使用QQ浏览器进行场景还原。
Q8:MobLink获取Mobid时报java.lang.Throwable: appkey illegal怎么回事?
A8:java.lang.Throwable: appkey illegal,一般正常就是程序最终得到的Appkey是异常的,这时候需要检查下用户项目里初始化的时候Appkey是否和您Mob后台申请的是一致的,有的时候,用户不止使用了Mob一款SDK,可能最终配置的Appkey是其他SDK的Appkey;还有一种情况,就是当Appkey是纯数字的时候编译后可能会导致appkey异常,最终配置在AndroidManifest.xml文件中的Appkey异常。
Q9:MobLink中参数传递代码和js中设置的key相同会如何?
A9:专业版的关于参数传递,可以在代码创建场景时设置参数,然后在场景还原中可以得到之前创建的参数;
// 设置场景参数
HashMap senceParams = new HashMap();
senceParams.put("key1", "value1");
senceParams.put("key2", "value2");
senceParams.put("key3", "value3");
// 新建场景
Scene s = new Scene();
s.path = "/demo/a";
s.params = senceParams;
同样,开发者也可以在前端页面中配置Mob提供的JS代码,进行参数设置。
<script type="text/javascript" src="//abz3.t4m.cn/applink.js"></script>
/*
* MobLink 支持数组=>MobLink([...]) 和对象=>MobLink({...})
* 页面上有多个元素需要跳转时使用数组方式,仅单个元素时可以使用对象的方式进行初始化
* el: 表示网页上Element的id值,该字段为空或者不写则表示MobLink默认浮层上的打开按钮(注意:必须为元素id,以#开头)
* path: 对应App里的路径
* params: 网页需要带给客户端的参数
*/
<script type="text/javascript">
MobLink(
{
el: "",
path: "demo/b",
params: {
key1: "value_one",
key2: "value_two",
}
}
);
</script>
这里主要下,如果说移动端创建场景时设置的参数的key和前端JS中配置的key相同,那么则以前端设置的参数为准,会覆盖的移动端设置的相同的key的参数。
Q10:MobLink经典版本配置检查一切正确,却无法正常场景还原。
A10:用户集成的经典版本,检查后台配置,JS端配置,以及移动端配置正常但是却无法正常场景还原,这时候就需要确定下用户MobLink的初始化是否正常了,有的用户关于MobLink的初始化异常导致这种现象。建议用户使用我们推荐的方式集成,在APplication的onCreate方法中进行初始化。
Q11:MOBLINK专业版本支持小程序跳转吗?
A11:专业版本目前暂不支持小程序打开App,反馈过PM,往后会添加支持,具体何时添加支持待确定。
通用
Q1:moblink后台,如下图怎么配置?
A1:需要填写应用宝微下载链接,不是应用详情界面的链接,有规则校验的
Q2:如下图,报错?
网页上写的有问题,需要删除掉
这一句
Q3:moblink中js代码文件能不能下载放到用户自己的服务器的问题?
A3:这个是不行的,我们的js是不可以离线的,这样不利于更新维护
Q4:moblink中没有安装app,跳转到的是我们的官网问题?
A4:要检查加的js代码里有没有传path,path不能只传/,没有值
Q5:moblink中横幅如何自定义?
A5:
在这个el参数里自己传值;
Q6:moblink中后台营销配置何解?
A6:营销配置是给用户自定义生成mobid的,就相当于用户可以随便写参数生成一个mobid然后跟在用户集成了我们JS的网页地址后面就可以使用了
Q7:MobLInk中的好友关系是怎么匹配的?
A7:MobLink的好友匹配功能时需要用户具有自己的用户系统并需要用户自己开发一些接口的,还要自定义参数,比如userId,分享出去的时候携带自己的userId,好友在下载打开应用时MobLink会把userId传给移动端应用,那么移动端应用启动时就可以知道是谁分享过来的,就可以自动匹配到好友了,其实我们SDK只是个搬运工。说白了MobLink就是帮用户传递一些他们自定义的参数,很多使用场景需要用户自己设计,也不局限于官网demo中展示的那几种功能。
Q8:如果APP中接入moblink,如果把h5页面放在APP中,是不是没办法在APP里调起原生界面?
A8:我们MobLink主要做的是打通Web网页与App之间的交流,在绝大多数情况下我们希望h5网页是在别的平台(QQ、微信、浏览器等)上被展示,点击后跳转到原生App,从而带来活跃等相关信息。如果你的h5是在自身的App内也要展示的话,那么我们建议你通过参数控制让展示在自身App内的h5就不要显示任何类似于“打开”按钮或者我们提供的默认浮层了,只是作内容展示就可以了,因为没有必要在App内再跳转到App。还有另外一种情况就是如果你的h5用户在别人的App中展示,那么其实是可以实现互相拉起的效果的。