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")
            @Override
            public 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);           
            }
        });
    }

@Override
    public 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> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值