首先导入魔窗的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>