coso js 魔窗
首先导入魔窗的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 魔窗相关推荐
- JS魔法堂:判断节点位置关系
一.前言 在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅. 二 ...
- JS魔法堂:属性、特性,傻傻分不清楚
一.前言 或许你和我一样都曾经被下面的代码所困扰 var el = document.getElementById('dummy'); el.hello = "test"; con ...
- JS魔法堂:不完全国际化本地化手册 之 拓展篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- JS魔法堂:doctype我们应该了解的基础知识
一.前言 什么是doctype?其实我们一直使用,却很少停下来看清楚它到底是什么,对网页有什么作用.本篇将和大家一起探讨那个默默无闻的doctype吧! 二.什么是doctype doctype或DT ...
- JS魔法堂:浏览器模式和文档模式怎么玩?
一.前言 从IE8开始引入了文档兼容模式的概念,作为开发人员的我们可以在开发人员工具中通过"浏览器模式"和"文档模式"(IE11开始改为"浏览器模式& ...
- JS魔法堂:那些困扰你的DOM集合类型
一.前言 大家先看看下面的js,猜猜结果会怎样吧! 可选答案: ①. 获取id属性值为id的节点元素 ②. 抛namedItem is undefined的异常 var nodes = documen ...
- JS魔法堂:初探传说中的setImmediate函数
一.前言 由于JavaScript程序为单线程,因此在执行长时间的操作时(如循环和递归操作)到导致UI线程长期被阻塞,无法响应用户操作请求(如点击按钮等),让用户体验大打折扣.于是想到将一个长时间 ...
- 自定义Js温馨提示窗
自定义Js温馨提示窗 自己写的Js温馨提示窗,实现鼠标点击图片弹出提示信息,鼠标点击关闭按钮,提示窗消失.基本上全用 ...
- JS魔法堂:mmDeferred源码剖析
一.前言 avalon.js的影响力愈发强劲,而作为子模块之一的mmDeferred必然成为异步调用模式学习之旅的又一站呢!本文将记录我对mmDeferred的认识,若有纰漏请各位指正,谢谢.项目请见 ...
最新文章
- mysql insert delay_解析mysqldump的delay-insert选项
- QIIME 2教程. 20实用程序Utilities(2020.11)
- php 追查框架生命周期,ThinkPHP5框架的生命周期:从发出请求到响应完成
- 如何用Java编写类似C的Sizeof函数
- Spring Data Solr入门
- arcgis 字段计算器 条件赋值_ArcGIS中属性表的常用操作汇总
- 大三,一点回忆,一点难忘
- Oracle数据库应用系统结构
- 读取图像到txt的程序
- SAP License:物料账差异
- Java爬虫Jsoup篇
- wifi产品调试经验
- 移远M26实现短信接收
- dependency
- 用鸽 计算机教案,幼儿园音乐教案《鸽子》
- 【Language model】使用RNN LSTM训练语言模型 写出45°角仰望星空的文章
- oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题
- 91 python高级 - 作用域
- Android---universal-image-loader应用
- WebView清除缓存的有效方法
热门文章
- Roofline-on-NVIDIA-GPUs代码分析
- 简述计算机五种常见动画及特点。【可拆成多个简答】
- pycharm2017.3.3破解到2099年
- 行测-判断推理-图形推理-样式规律-黑白运算
- 中文分词后去除停用词
- 01-Chrome架构:仅仅打开了1个页面,为什么有4个进程
- SQLI DUMB SERIES-1
- JSON扩展类——JsonHelper
- REUSE_ALV_GRID_DISPLAY_LVC 实现单元格值改变前(DATA_CHANGED)和单元格值改变后(DATA_CHANGED_FINISHED)的事件响应
- rabbitMQ队列解绑