安卓MobLink的集成与使用
集成文档:http://www.mob.com/wiki/detailed?wiki=MobLink_for_Android_gradle_quick&id=34
1.集成准备
注册应用,需要appId 与appkey
2.集成配置
第一步:项目的更目录build.gradle 配置
buildscript {
repositories {
...
}
dependencies {
...
classpath 'com.mob.sdk:MobSDK:2018.0319.1724'
}
}
第二步:项目的app模块的build.gradle配置
// 添加插件
apply plugin: 'com.mob.sdk'
// 在MobSDK的扩展中注册MobLink的相关信息
MobSDK {
appKey "d580ad56b4b5"
appSecret "7fcae59a62342e7e2759e9e397c82bdd"
MobLink {
uriScheme "您后台配置的scheme"
appLinkHost "您后台开启AppLink时生成的Host"
}
}
这样就集成完毕,重新build即可。
3.集成使用
场景监听
//Java代码
class SceneListener extends Object implements RestoreSceneListener {
@Override
public Class<? extends Activity> willRestoreScene(Scene scene) {
return MainActivity;
}
@Override
public void notFoundScene(Scene scene) {
//TODO 未找到处理scene的activity时回调
}
@Override
public void completeRestore(Scene scene) {
// TODO 在"拉起"处理场景的Activity之后调用
}
}
设置监听,建议放到Application中
//java代码
MobSDK.init(this);
MobLink.setRestoreSceneListener(new SceneListener());
4.tomcat 部署分享H5
使用MobLink的js,调起app
4.1MobLink的H5参数传递
<script type="text/javascript">
MobLink([
{
el: "",
path: "applink/a",
params: {
key1: "sunlands1",
key2: "sunlands2",
}
},
{
el: "#openAppBtn",
path: "applink/b",
params: {
key1: "sunlands1",
key2: "sunlands2",
}
},
]);
</script>
- MobLink 支持数组=>MobLink([...]) 和对象=>MobLink({...})
- 页面上有多个元素需要跳转时使用数组方式,仅单个元素时可以使用对象的方式进行初始化
- el: 表示网页上Element的id值,该字段为空或者不写则表示MobLink默认浮层上的打开按钮(注意:必须为元素id,以#开头)
- path: 对应App里的路径
- params: 网页需要带给客户端的参数
4.2 android的H5参数接收与处理
android使用SceneListener监听h5的参数,根据路径与参数跳转到相对应的android页面,Scene类与js的传参是对应的,从而实现场景还原。
public class Scene implements PublicMemberKeeper, Serializable {
public String path;
public HashMap<String, Object> params;
public Scene() {
}
public String getPath() {
return this.path;
}
public void setPath(String var1) {
this.path = var1;
}
public HashMap<String, Object> getParams() {
return this.params;
}
public void setParams(HashMap<String, Object> var1) {
this.params = var1;
}
}
5.存在问题
- 微信不能直接调起app,需要通过浏览器调起
- 用户邀请拉新的记录需要自己处理(Mob没有相关支持)
6.集成过程中的问题:
Could not GET 'https://jcenter.bintray.com/com/mob/sdk/MobSDK-Impl/2019.1109.1046/MobSDK-Impl-2019.1109.1046.jar'. Received status code 400 from server: Bad Request
解决办法:
/Users/admin/.gradle/gradle.properties 去掉错误的代理:
systemProp.https.proxyPort=80
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80
网友评论