zoukankan      html  css  js  c++  java
  • 从浏览器直接转跳到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下载地址

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

  • 相关阅读:
    smtp实验(生成树协议)
    结合以太通道的vlan配置
    路由器基础配置之浮动静态路由
    路由器基础配置之rip
    路由器基础配置之静态路由
    路由器基础配置之单臂路由实现vlan间通信
    交换机基础配置之三层交换机实现vlan间通信
    交换机基础配置之stp生成树实验
    交换机基础配置之结合以太通道的vlan设置
    交换机基础设置之vtp管理vlan设置
  • 原文地址:https://www.cnblogs.com/muyuge/p/6333518.html
Copyright © 2011-2022 走看看