Android开发-魔窗DeeplinkDemo-AndroidStudio
来源:互联网 发布:解析度分析软件 编辑:程序博客网 时间:2024/06/15 01:08
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/70238463
觉得博文有用,请点赞,请评论,请关注,谢谢!~
觉得博文有用,请点赞,请评论,请关注,谢谢!~
觉得博文有用,请点赞,请评论,请关注,谢谢!~
老规矩,先上GIF动态图,看个效果,如果符合你的项目或者确定你要了解的内容,再往下看吧:
1、注册魔窗账号:
http://mgnt.magicwindow.cn/
2、新增产品:
2.1、Android 应用名称:随便写
2.2、Android 包名:要写对
2.3、Android URI Scheme:随便写,注意全小写,但是要记住(Demo的URI Scheme是:mwshowbywh://)
2.4、Android 下载地址:随便写
2.5、iOS:这里不演示,但是有必填选项,随便敲几个字母即可
2.6、Android 系统分配一个App Key,请记住(Demo的App Key是:68JWNQRU1KOGF124040VES4XH51BF5VN)
3、添加mLink:
3.1、mLink服务名称:随便写,比如 帖子页面、商品页面
3.2、mLink服务key:随便写,注意必须全小写,比如bbs、goods
3.3、Android URI:我不知道什么要这么写,开发文档提供的格式,照搬吧,比如:bbs?name=:name、goods?name=:name
3.4、系统分配默认短连接:帖子页面:https://a.mlinks.cc/AK7F、商品页面:https://a.mlinks.cc/AKoU
4、完事了,上代码:
4.1、导入jar包:
http://www.magicwindow.cn/download.html
https://sdk.mlinks.cc/MW_SDK_ANDROID_3.9.161221.zip
4.2、build.gradle:
apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.iwanghang.myapplication" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}repositories { // 魔窗 flatDir { dirs'libs' }}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.0' testCompile 'junit:junit:4.12' compile files('libs/libammsdk.jar') // 魔窗 compile(name:'MagicWindowSDK', ext:'aar')}
4.3、AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.iwanghang.myapplication"> <!-- 访问网络 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取WIFI信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允许访问GPS --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 允许应用程序写数据到外部存储设备(主要是SD卡) --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 在sdcard中创建/删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 请求访问使用照相设备 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 开启闪光灯权限 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.camera.flash" /> <!-- 魔窗权限 --> <!-- 连接互联网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" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".SplashActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- 以下是魔窗信息 --> <intent-filter> <data android:scheme="mwshowbywh" /> <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,必须注册!!! --> <activity android:name="com.zxinsight.common.base.MWActivity" android:configChanges="orientation|keyboardHidden|screenSize|navigation" android:exported="true" /> <!-- 微信分享回调(教程没有演示 by iwanghang) --> <!-- <activity android:name=".wxapi.WXEntryActivity" --> <!-- android:theme="@android:style/Theme.Translucent.NoTitleBar" --> <!-- android:configChanges="keyboardHidden|orientation|screenSize" --> <!-- android:exported="true" --> <!-- android:launchMode="singleTop" /> --> <!-- MW sdk ID 此处跟activity同级,需要放在Application内,MW_APPID(也就是后台的” 魔窗AppKey”)不能更改 --> <meta-data android:name="MW_APPID" android:value="68JWNQRU1KOGF124040VES4XH51BF5VN" /> <!-- 渠道名称MW_CHANNEL不能更改 --> <meta-data android:name="MW_CHANNEL" android:value="渠道中文随便写" /> <!-- 以上是魔窗信息 --> <activity android:name=".GoodsActivity" /> <activity android:name=".MainActivity" /> <activity android:name=".BbsActivity"></activity> </application></manifest>
4.4、SplashActivity(欢迎页面):
package com.iwanghang.myapplication;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.zxinsight.MLink;import com.zxinsight.MWConfiguration;import com.zxinsight.MagicWindowSDK;import com.zxinsight.Session;import com.zxinsight.mlink.MLinkCallback;import com.zxinsight.mlink.MLinkIntentBuilder;import java.util.Map;public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); // 初始化魔窗 initMW(); // 初始化魔窗 跳转router调用 if (getIntent().getData()!=null) { // 如果不为空,说明是通过scheme跳转进来的 MLink.getInstance(this).router(getIntent().getData()); // 初始化魔窗 跳转后结束当前activity finish(); } else { //TODO:动画等耗时操作结束后再调用checkYYB(),一般写在starActivity前即可 MLink.getInstance(this).checkYYB(); gotoHome(); // 如果有欢迎页面(闪屏页 开屏页面 需要这个方法) //register (this); } } /** * 初始化魔窗 */ private void initMW() { MWConfiguration config = new MWConfiguration(this);// 设置渠道,非必须(渠道推荐在AndroidManifest.xml内填写)// config.setChannel("你的渠道名称")// //开启Debug模式,显示Log,release时注意关闭// .setDebugModel(true)// //带有Fragment的页面。具体查看2.2.2// . setPageTrackWithFragment(true)// //设置分享方式,如果之前有集成sharesdk,可在此开启// . setSharePlatform (MWConfiguration. ORIGINAL); config.setDebugModel(true) . setSharePlatform (MWConfiguration. ORIGINAL); MagicWindowSDK.initSDK(config); MLink.getInstance(this).registerWithAnnotation(this); // 初始化魔窗 MLink注册 MLink.getInstance(this).router(this, getIntent().getData()); } private void gotoHome() { startActivity(new Intent(this, MainActivity.class)); finish(); } private void register(Context context){ MLink.getInstance(context).registerDefault(new MLinkCallback() { @Override public void execute(Map paramMap, Uri uri, Context context) { //HomeActivity 为你的首页 MLinkIntentBuilder.buildIntent(paramMap, context, MainActivity.class); } }); // mLinkKey: mLink 的 key, mLink的唯一标识 MLink.getInstance(context).register("goods", new MLinkCallback() { public void execute(Map paramMap, Uri uri, Context context) { MLinkIntentBuilder.buildIntent(paramMap, context, GoodsActivity.class); } }); } @Override protected void onPause() { // 魔窗所需 Session为基础功能,必须集成,否则无法获取到活动。 Session.onPause(this); super.onPause(); } @Override protected void onResume() { // 魔窗所需 Session为基础功能,必须集成,否则无法获取到活动。 Session.onResume(this); super.onResume(); }}
4.5、MainActivity:
package com.iwanghang.myapplication;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import com.zxinsight.mlink.annotation.MLinkDefaultRouter;/** * 魔窗 在程序主页(默认页面)如下注册: * @MLinkDefaultRouter */@MLinkDefaultRouterpublic class MainActivity extends AppCompatActivity { private Button button_goto_goods; private Button button_mc_goto_goods; private Button button_goto_bbs; private Button button_mc_goto_bbs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 商品页面 button_goto_goods = (Button) findViewById(R.id.button_goto_goods); button_goto_goods.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, GoodsActivity.class); MainActivity.this.startActivity(intent); } }); button_mc_goto_goods = (Button) findViewById(R.id.button_mc_goto_goods); button_mc_goto_goods.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = Uri.parse("https://a.mlinks.cc/AKoU"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); } }); // 帖子页面 button_goto_bbs = (Button) findViewById(R.id.button_goto_bbs); button_goto_bbs.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, GoodsActivity.class); MainActivity.this.startActivity(intent); } }); button_mc_goto_bbs = (Button) findViewById(R.id.button_mc_goto_bbs); button_mc_goto_bbs.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = Uri.parse("https://a.mlinks.cc/AK7F"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); } }); }}
4.6、GoodsActivity:
package com.iwanghang.myapplication;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.zxinsight.mlink.annotation.MLinkRouter;/** * 测试商品页面 * 魔窗 在程序除了主页以外的所有页面 如下注册: * @MLinkRouter * * //其中 mLinkKey1和 mLinkKey2是此页面的 mLink Key。如果只有一个,写一个即可。 * @MLinkRouter(keys={"mLinkKey1"," mLinkKey2"}) */@MLinkRouter(keys={"goods"})public class GoodsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_goods); }}
4.7、BbsActivity:
package com.iwanghang.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.zxinsight.mlink.annotation.MLinkRouter;/** * 帖子商品页面 * 魔窗 在程序除了主页以外的所有页面 如下注册: * @MLinkRouter * * //其中 mLinkKey1和 mLinkKey2是此页面的 mLink Key。如果只有一个,写一个即可。 * @MLinkRouter(keys={"mLinkKey1"," mLinkKey2"}) */@MLinkRouter(keys={"bbs"})public class BbsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bbs); }}
项目打包下载:http://download.csdn.net/detail/iwanghang/9818995
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/70238463
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
觉得博文有用,请点赞,请评论,请关注,谢谢!~
3 0
- Android开发-魔窗DeeplinkDemo-AndroidStudio
- Android开发-TextViewDemo-AndroidStudio
- Android开发-EditTextDemo-AndroidStudio
- Android开发-ImageViewDemo-AndroidStudio
- Android开发中Androidstudio快捷键
- Android开发-selector-setSelected-AndroidStudio
- Android 开发环境搭建(AndroidStudio)
- Android开发-ListView(1)-AndroidStudio
- Android开发AndroidStudio多渠道打包
- Android-Androidstudio集成git开发环境
- Android-androidstudio懒惰开发-必备插件
- Android开发-SQLiteDemo增删改查-AndroidStudio
- Android开发-点击进入拨号界面-AndroidStudio
- Android开发-Fragment返回键监听-AndroidStudio
- Android开发-ScrollView简单实现滚动-AndroidStudio
- Android开发-Intent传递ArrayList-AndroidStudio
- Android开发-Intent传递数值-AndroidStudio
- Android开发&AndroidStudio安装后配置
- for循环内嵌递归用于排列组合
- tomcat manager 403 access denied
- Wireshark基本介绍和学习TCP三次握手
- Docker三剑客之Compose-三
- js里的方法
- Android开发-魔窗DeeplinkDemo-AndroidStudio
- php判断文件上传图片格式是否为图片
- 使用Nexus搭建Maven私服
- Deep Learning(深度学习)代码/课程/学习资料整理
- windows 命令netsh设置ip
- 【经典】产品人面试中的一些软回答~~
- Leetcode 295. Find Median from Data Stream
- 一个专题让你轻松入门机器学习
- (八)微信与H5的测试