无码邀请

功能介绍

结合延迟深度链接服务,携带参数给到 APP 内部,完成业务流程。从 Web 活动到 APP,轻松实现无缝连接。

应用场景

运用广泛,场景中免除填写邀请码,规避用户操作繁琐而带来的影响,提高转化率。如游戏间邀请好友/地推活动/建立上下级关系,快速安装打开应用完成业务的奖励

使用方式

以短链后缀码 AAaH 为例,有无码邀请id:uid-123456(邀请 id 生成规则由用户决定)

Web SDK 如何使用

JMLink 中实现无码邀请需要在 Web SDK 初始化时添加 invtparams 配置,追加参数 key 必须为 u_id,否则无效,则有网页中 JMLink 初始化代码为:

new JMLink({
    jmlink:'AAaH',
    button:document.querySelector('a#btnOpenApp')
    invtparams:{u_id : "uid-123456"}
});

Android SDK 如何使用

接口定义

  • JMLinkAPI.getInstance().getParam(String key)

    • 接口说明:
      • 从 JS SDK 传递的无码邀请邀请参数信息
    • 参数说明:
      • key:开发者传递的自定义参数的key。比如"u_id"
    • 结果返回:
      • String:自定义参数实际值。如果不存在则返回null
  • JMLinkAPI.getInstance().getParams()

    • 接口说明:
      • 从 JS SDK 传递的无码邀请邀请参数信息
    • 结果返回:
      • 包含所有无码参数的map。如果不存在则map的size为0;

使用说明

需要在绑定的页面中才能获取到无码邀请参数,例如使用注解的方式绑定页面时要在使用@JMLinkRouter(keys = "您的jmlinkKey")@JMLinkDefaultRouter对应的页面中使用上述api才能获取到无码邀请参数,如果是使用动态绑定的方式,可在JMLinkCallback中调用上述api获取无码邀请参数

使用示例

注解绑定方式
@JMLinkRouter(keys = "您的jmlinkKey")
public class SecondActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        ((TextView) findViewById(R.id.appkey)).setText(getAppkey());
        // 获取用户自定义参数
        Bundle bundle = getIntent().getExtras();
        if (bundle != null && bundle.keySet().size() > 0) {
            StringBuilder stringBuilder = new StringBuilder();
            for (String key : bundle.keySet()) {
                stringBuilder.append(key).append(" - ").append(bundle.getSerializable(key)).append("\n");
            }
            ((TextView) findViewById(R.id.params)).setText(stringBuilder);
        }
        // 获取无码邀请参数,方式一
        String uid = JMLinkAPI.getInstance().getParam("u_id");
        // 获取无码邀请参数, 方式二
        Map<String, String> dynpParams = JMLinkAPI.getInstance().getParams();
        if (dynpParams.size() > 0) {
            StringBuilder stringBuilder = new StringBuilder();
            for (Map.Entry<String, String> entry : dynpParams.entrySet()) {
                stringBuilder.append(entry.getKey()).append(" - ").append(entry.getValue()).append("\n");
            }
            ((TextView) findViewById(R.id.dynpParams)).setText(stringBuilder);
        }
    }


动态绑定方式
JMLinkAPI.getInstance().register("您的jmlinkKey", new KeyCallback(getApplicationContext()));
static class KeyCallback implements JMLinkCallback {
    private Context context;
    public KeyCallback(Context context) {
        this.context = context;
    }

    @Override
    public void execute(Map<String, String> paramMap, Uri uri) {
                // 获取无码邀请参数,方式一
        String uid = JMLinkAPI.getInstance().getParam("u_id");
        // 获取无码邀请参数, 方式二
        Map<String, String> dynpParams = JMLinkAPI.getInstance().getParams();
        // 也可以在SecondActivity中调用上述方法获取无码邀请参数
        JMLinkIntentBuilder.buildIntent(paramMap, context, SecondActivity.class);
    }
}

iOS SDK 如何使用

iOS 端调用接口获取无码邀请中传回来的相关值

/**
 *  获取无码邀请中传回来的相关值
 *  @param paramKey  paramKey,比如:u_id
 *  @handler handler 回调
 */
+(void)getMLinkParam:(nonnull NSString *)paramKey 
        handler:(void(^_Nonnull)(NSDictionary * __nullable params))handler;

Copyright 2011-2020, jiguang.cn, All Rights Reserved.
粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

Documentation built with MkDocs.