从浏览器直接转跳到APP具体页面---(魔窗)MagicWindow使用教程

144
作者 魔窗magicwindow
2016.09.01 11:03 字数 757

想要实现在网页里一键调到你APP的指定页面吗,好比打开 JD的一个商品的网页,从网页调到APP这个商品的页面。APP服务化, 使用魔窗SDK可以轻松实现!老规矩:效果图奉上


这里写图片描述

1.注册魔窗账号,

创建APP注册地址:www.magicwindow.cn创建你的app


这里写图片描述

2.嵌入sdk

这里只介绍Android Studio的嵌入方法

(1)下载aar包,将其放到libs目录


这里写图片描述

(2)在gradle内配置

repositories { flatDir {dirs'libs'} } dependencies { compile(name:'MagicWindowSDK', ext:'aar') }

(3)配置Manifest.xml

在你的引导页面 加入以下代码:

3.调用SDK

1.在引导页(SplashActivity) 进行Activity的初始化:

MWConfiguration config = new MWConfiguration(this);//设置渠道,非必须(渠道推荐在AndroidManifest.xml内填写)config.setChannel("你的渠道名称") //开启Debug模式,显示Log,release时注意关闭 .setDebugModel(true) //带有Fragment的页面。具体查看2.2.2.setPageTrackWithFragment(true) //设置分享方式,如果之前有集成sharesdk,可在此开启 .setSharePlatform (MWConfiguration. ORIGINAL);MagicWindowSDK.initSDK(config);

2.在自定义Application 注册session

Session.setAutoSession(this);

4.注册mLink


这里写图片描述

这里的key就是 从你的SplashActivity 路由到你具体Activity的 key。接下来,只需要在你的SplashActivity 注册路由即可。具体分析看注释,尤其注意其中有个 坑!!!!!小心,鼓捣了我好久。

private void registerLinks(Context context) { MLink.getInstance(context).registerDefault(new MLinkCallback() { @Override public voidexecute(MapparamMap, Uri uri,Contextcontext) { //默认的路由 如果没有匹配则转跳到 MainActivity 为你的首页 MLinkIntentBuilder.buildIntent(paramMap,context, MainActivity.class);} }); // testKey: mLink 的 key, mLink的唯一标识,用于进行路由操作 MLink.getInstance(context).register("testKey", new MLinkCallback() { public voidexecute(MapparamMap, Uri uri,Contextcontext) {  //!!!!!!!!注意 此处有坑,如果你的SplashActivity转跳有延迟,那么在此处转跳的延迟必须大于前者转跳时间!!!!!!!!  Observable.timer(1050,TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(aVoid->{ MLinkIntentBuilder.buildIntent(paramMap,context, DetailsActivity.class);});  } }); }

此时onCreate的代码如下:

publicclassSplashActivityextendsAppCompatActivity{@Overrideprotectedvoid onCreate(BundlesavedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash);//初始化SDK initSDK(); //注册SDK registerLinks(this); Uri mLink = getIntent().getData(); //如果从浏览器传来 则进行路由操作 if(mLink != null){ MLink.getInstance(this).router(this, mLink); finish(); }else { //否则执行原本操作 go2MainActivity(); } }

接下来添加你的短链接,按照提示添加即可


这里写图片描述

下面我们从浏览器里打开 短链接,看看发生了什么、


这里写图片描述

很神奇的从 网页转跳到了详情页 有木有!!!快去试试吧~~DEMO下载地址

如果你喜欢我的博客 请评论或者点喜欢!~!谢谢

文/androidwing1992(简书作者)

原文链接:http://www.jianshu.com/p/9b90658d3cde

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

日记本