想要實現在網頁裏一鍵調到你APP的指定頁面嗎,好比打開 JD的一個商品的網頁,從網頁調到APP這個商品的頁面。APP服務化, 使用魔窗SDK可以輕鬆實現!
老規矩:效果圖奉上
1.註冊魔窗賬號,創建APP
註冊地址:www.magicwindow.cn
創建你的app
2.嵌入sdk
這裏只介紹Android Studio的嵌入方法
轉載請註明出處:http://blog.csdn.net/wingichoy/article/details/52063229
(1)下載aar包,將其放到libs目錄
(2)在gradle內配置
repositories {
flatDir {
dirs'libs'
}
}
dependencies {
compile(name:'MagicWindowSDK', ext:'aar')
}
(3)配置Manifest.xml
<!-- 連接互聯網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" />
<!-- APPID -->
<meta-data android:name="MW_APPID" android:value="您的魔窗AppId" />
在你的引導頁面 加入以下代碼:
<intent-filter>
<data android:scheme="你的Scheme"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
3.調用SDK
1.在引導頁(SplashActivity) 進行Activity的初始化:
MWConfiguration config = new MWConfiguration(this);
//設置渠道,非必須(渠道推薦在AndroidManifest.xml內填寫)
config.setChannel("你的渠道名稱")
//開啓Debug模式,顯示Log,release時注意關閉
.setDebugModel(true)
//帶有Fragment的頁面。具體查看2.2.2
. setPageTrackWithFragment(true)
//設置分享方式,如果之前有集成sharesdk,可在此開啓
. setSharePlatform (MWConfiguration. ORIGINAL);
MagicWindowSDK.initSDK(config);
2.在自定義Application 註冊session
Session.setAutoSession(this);
4.註冊mLink
![這裏寫圖片描述]
這裏的key就是 從你的SplashActivity 路由到你具體Activity的 key。
接下來,只需要在你的SplashActivity 註冊路由即可。具體分析看註釋,尤其注意其中有個 坑!!!!!小心,鼓搗了我好久。
private void registerLinks(Context context) {
MLink.getInstance(context).registerDefault(new MLinkCallback() {
@Override
public void execute(Map paramMap, Uri uri, Context context) {
//默認的路由 如果沒有匹配則轉跳到 MainActivity 爲你的首頁
MLinkIntentBuilder.buildIntent(paramMap, context, MainActivity.class);
}
});
// testKey: mLink 的 key, mLink的唯一標識,用於進行路由操作
MLink.getInstance(context).register("testKey", new MLinkCallback() {
public void execute(Map paramMap, Uri uri, Context context) {
//!!!!!!!!注意 此處有坑,如果你的SplashActivity轉跳有延遲,那麼在此處轉跳的延遲必須大於前者轉跳時間!!!!!!!!
Observable.timer(1050,TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aVoid->{
MLinkIntentBuilder.buildIntent(paramMap, context, DetailsActivity.class);
});
}
});
}
此時onCreate的代碼如下:
public class SplashActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
//初始化SDK
initSDK();
//註冊SDK
registerLinks(this);
Uri mLink = getIntent().getData();
//如果從瀏覽器傳來 則進行路由操作
if(mLink != null){
MLink.getInstance(this).router(this, mLink);
finish();
}else {
//否則執行原本操作
go2MainActivity();
}
}
接下來添加你的短鏈接,按照提示添加即可
下面我們從瀏覽器裏打開 短鏈接,看看發生了什麼、
很神奇的從 網頁轉跳到了詳情頁 有木有!!!
快去試試吧~~