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

想要实现在网页里一键调到你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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,509评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,065评论 25 708
  • 早上出门看到前面有个小孩走路不稳摔倒了,接着下一秒就开始哇哇大哭,这时站在旁边的家长赶紧上前去抱起小孩,抱在怀里心...
    南风过境肆意温言阅读 318评论 0 1
  • 父亲的生日马上要到了,该拿什么送给父亲,这成了一件让我挠头的事。再弄一桌饭菜为父亲过生日是行不通了,父亲明显不喜欢...
    石头上开满鲜花阅读 240评论 5 3