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

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

老规矩:效果图奉上
这里写图片描述

1.注册魔窗账号,创建APP

注册地址:www.magicwindow.cn

创建你的app
这里写图片描述

2.嵌入sdk

这里只介绍Android Studio的嵌入方法
转载请注明出处:http://blog.csdn.net/wingichoy/article/details/52063229

(1)下载aar包,将其放到libs目录
这里写图片描述

(2)在gradle内配置

repositories {
     flatDir {
         dirs'libs'
     }
 }

 dependencies {
     compile(name:'MagicWindowSDK', ext:'aar')
 }

(3)配置Manifest.xml

<!-- 连接互联网Internet权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许应用程序联网,以便向我们的服务器端发送数据。 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--判断程序是否在前台运行,必须 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 检测手机基本状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 缓存资源优先存入SDcard -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- APPID -->
<meta-data android:name="MW_APPID" android:value="您的魔窗AppId" />

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

  <intent-filter>
        <data android:scheme="你的Scheme"/>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>

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);

![这里写图片描述]
这里写图片描述

这里的key就是 从你的SplashActivity 路由到你具体Activity的 key。

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

 private void registerLinks(Context context) {
    MLink.getInstance(context).registerDefault(new MLinkCallback() {
      @Override
      public void execute(Map paramMap, Uri uri, Context context) {
        //默认的路由 如果没有匹配则转跳到 MainActivity 为你的首页
        MLinkIntentBuilder.buildIntent(paramMap, context, MainActivity.class);
      }
    });
    // testKey:  mLink 的 key, mLink的唯一标识,用于进行路由操作
    MLink.getInstance(context).register("testKey", new MLinkCallback() {
      public void execute(Map paramMap, Uri uri, Context context) {

        //!!!!!!!!注意 此处有坑,如果你的SplashActivity转跳有延迟,那么在此处转跳的延迟必须大于前者转跳时间!!!!!!!!

        Observable.timer(1050,TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(aVoid->{
              MLinkIntentBuilder.buildIntent(paramMap, context, DetailsActivity.class);

            });

      }
    });
  }

此时onCreate的代码如下:

public class SplashActivity extends AppCompatActivity {

  @Override protected void onCreate(Bundle savedInstanceState) {
    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下载地址

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

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值