首先导入魔窗的SDK包
再在AppActivity里注册和使用

 protected void onStart() {super.onStart();Uri mLink = getIntent().getData();MLink.getInstance(AppActivity.this).deferredRouter();Log.e("MagicWindowsSDK", "onStart" + mLink); if (mLink != null) {MLink.getInstance(this).router(mLink);} else {Log.d("请您安装软件", "请您安装软件");//MLink.getInstance(this).checkYYB();}      }private void initMagicWindows() {MWConfiguration config = new MWConfiguration(this);config.setDebugModel(true).setPageTrackWithFragment(true).setWebViewBroadcastOpen(true).setSharePlatform(MWConfiguration.ORIGINAL);MagicWindowSDK.initSDK(config);}protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMagicWindows();       registerForMLinkCallback();Uri mLink = getIntent().getData();MLink.getInstance(AppActivity.this).deferredRouter();System.out.println("魔窗返回绑定参数mlink mLinkmLinkmLinkmLink"+mLink);if (mLink != null) {MLink.getInstance(this).router(mLink);} else {//MLink.getInstance(this).checkYYB();}}private static void registerForMLinkCallback() {MLink mLink = MagicWindowSDK.getMLink();System.out.println("------------------------registerForMLinkCallback");mLink.registerDefault(new MLinkCallback() {@SuppressWarnings("null")@Overridepublic void execute(Map<String, String> paramMap, Uri uri, Context context) {//todo: 获取动态参数,用来处理System.out.println("---------------------进入注册");String id = ""; String type = "";try {if (paramMap != null) {id = paramMap.get("hehe"); //通过key来取得需要的信息type = paramMap.get("hehe");} else if(uri != null) {id = uri.getQueryParameter("hehe");type = paramMap.get("hehe");}} catch (Exception e) {Log.e("mlinkInfo", "Exception", e);}      System.out.println(id+"魔窗返回绑定参数mlink key"+type);
//              for (Map.Entry MapString : paramMap.entrySet()) {
//                  String key=(String) MapString.getKey();//次方法获取键值对的名称
//                  String value=(String) MapString.getValue();//次方法获取键值对的值
//                  System.out.println(key+":*************:"+value);
//              }//todo: 此处可以根据获取的动态参数id来做相应的处理
//              Intent intent = new Intent(context, AppActivity.class);
//              intent.putExtra("from", "mLink");
//              AppActivity.instance.processIntent(intent);           }});}@Overridepublic void onPause() {Session.onPause(self);super.onPause();}
protected void onResume() {Session.onResume(self);super.onResume();}AndroidManifest.xml 里的配置
<activity android:name="org.cocos2dx.javascript.AppActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><intent-filter><data android:scheme="kuailaihngame"/><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /></intent-filter></activity>
<activity android:name="com.zxinsight.common.base.MWActivity" android:exported="true"android:configChanges="orientation|keyboardHidden|screenSize|navigation"/>
在application里添加
<meta-data android:name="MW_APPID" android:value="你的appkey" /> <!--渠道名称MW_CHANNEL不能更改 --><meta-data android:name="MW_CHANNEL" android:value="渠道id" /><!-- wx end -->权限
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" /><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" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.VIBRATE" />然后去魔窗官网注册一个账号,添加一个app
配置一下mLink
mLink服务名称:名称
mLink服务key: key
Android URI:key?hehe=:id&hehe=:type//在写一个网页   微信分享的时候在这个网页链接的后面加上"?hehe" + hehe + "&hehe=" + ""  //自己需要传的参数就可以了
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head><meta charset="UTF-8"/><meta name="apple-mobile-web-app-cacable" content="yes" /><meta name="viewport" content="width=device-width, initial-scale=1.0, maximun-scale=1.0, user-scaleble=0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>"微信跳转"</title>
</head>
<body><div class="main><div class="banner"><a class="dwnBtn" id="openApp" href=""></a></div><div class="middle"...>
</div><script src="https://static.mlinks.cc/scripts/dist/mlink.min.js"></script><!-- h5 静态传参数 如gameRoomID --><script>function HashMap(key,value){  var key;  var value;  this.put = function(key,value){  this.key = key;  this.value = value;  }  this.getKey = function(){  return key;  }  this.getValue = function(){  return value;  }  }  function Request(){  var parameters = null;  this.init = function(){  var location = window.location.href;  var index = location.indexOf("?");  var queryString = ((index>0)?location.substring(index+1):null);  if(null!=queryString){  parameters = new Array();  var parameterArray = queryString.split("&");  var length = parameterArray.length;  for(var i=0;i<length;i++){  var parameter = parameterArray[i];  index =  parameter.indexOf("=");  var key = parameter.substring(0,index);  var value = parameter.substring(index+1);  if(null!=key && key.length>0){  parameters.push(new HashMap(key,value));  }  }  }  }  this.getParameter = function(key){  this.init();  if(null==parameters)  return "";  var length = parameters.length;  for(var i=0;i<length;i++){  hashMap = parameters[i];  if(hashMap.getKey() == key){  return hashMap.getValue();  }  }  return "";  }  this.getParameterValues = function(key){  this.init();  if(null==parameters)  return null;  var array = new Array();  var length = parameters.length;  for(var i=0;i<length;i++){  hashMap = parameters[i];  if(hashMap.getKey() == key){  array.push(hashMap.getValue());  }  }  return array;  }}  </script><!-- 魔窗对象 --><script>window.onload = function(){var request = new Request();new Mlink({mlink: "AclX",button: document.querySelector("a#openApp"),autoLaunchApp: true,autoRedirectToDownloadUrl: true,downloadWhenUniversalLinkFailed: false,inapp:false,params:{id:request.getParameter(""), type:request.getParameter("")}});}</script></body></html> 

coso js 魔窗相关推荐

  1. JS魔法堂:判断节点位置关系

    一.前言 在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅. 二 ...

  2. JS魔法堂:属性、特性,傻傻分不清楚

    一.前言 或许你和我一样都曾经被下面的代码所困扰 var el = document.getElementById('dummy'); el.hello = "test"; con ...

  3. JS魔法堂:不完全国际化本地化手册 之 拓展篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  4. JS魔法堂:doctype我们应该了解的基础知识

    一.前言 什么是doctype?其实我们一直使用,却很少停下来看清楚它到底是什么,对网页有什么作用.本篇将和大家一起探讨那个默默无闻的doctype吧! 二.什么是doctype doctype或DT ...

  5. JS魔法堂:浏览器模式和文档模式怎么玩?

    一.前言 从IE8开始引入了文档兼容模式的概念,作为开发人员的我们可以在开发人员工具中通过"浏览器模式"和"文档模式"(IE11开始改为"浏览器模式& ...

  6. JS魔法堂:那些困扰你的DOM集合类型

    一.前言 大家先看看下面的js,猜猜结果会怎样吧! 可选答案: ①. 获取id属性值为id的节点元素 ②. 抛namedItem is undefined的异常 var nodes = documen ...

  7. JS魔法堂:初探传说中的setImmediate函数

    一.前言   由于JavaScript程序为单线程,因此在执行长时间的操作时(如循环和递归操作)到导致UI线程长期被阻塞,无法响应用户操作请求(如点击按钮等),让用户体验大打折扣.于是想到将一个长时间 ...

  8. 自定义Js温馨提示窗

                                        自定义Js温馨提示窗       自己写的Js温馨提示窗,实现鼠标点击图片弹出提示信息,鼠标点击关闭按钮,提示窗消失.基本上全用 ...

  9. JS魔法堂:mmDeferred源码剖析

    一.前言 avalon.js的影响力愈发强劲,而作为子模块之一的mmDeferred必然成为异步调用模式学习之旅的又一站呢!本文将记录我对mmDeferred的认识,若有纰漏请各位指正,谢谢.项目请见 ...

最新文章

  1. mysql insert delay_解析mysqldump的delay-insert选项
  2. QIIME 2教程. 20实用程序Utilities(2020.11)
  3. php 追查框架生命周期,ThinkPHP5框架的生命周期:从发出请求到响应完成
  4. 如何用Java编写类似C的Sizeof函数
  5. Spring Data Solr入门
  6. arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总
  7. 大三,一点回忆,一点难忘
  8. Oracle数据库应用系统结构
  9. 读取图像到txt的程序
  10. SAP License:物料账差异
  11. Java爬虫Jsoup篇
  12. wifi产品调试经验
  13. 移远M26实现短信接收
  14. dependency
  15. 用鸽 计算机教案,幼儿园音乐教案《鸽子》
  16. 【Language model】使用RNN LSTM训练语言模型 写出45°角仰望星空的文章
  17. oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题
  18. 91 python高级 - 作用域
  19. Android---universal-image-loader应用
  20. WebView清除缓存的有效方法

热门文章

  1. Roofline-on-NVIDIA-GPUs代码分析
  2. 简述计算机五种常见动画及特点。【可拆成多个简答】
  3. pycharm2017.3.3破解到2099年
  4. 行测-判断推理-图形推理-样式规律-黑白运算
  5. 中文分词后去除停用词
  6. 01-Chrome架构:仅仅打开了1个页面,为什么有4个进程
  7. SQLI DUMB SERIES-1
  8. JSON扩展类——JsonHelper
  9. REUSE_ALV_GRID_DISPLAY_LVC 实现单元格值改变前(DATA_CHANGED)和单元格值改变后(DATA_CHANGED_FINISHED)的事件响应
  10. rabbitMQ队列解绑