從瀏覽器直接轉跳到APP具體頁面---(魔窗)MagicWindow使用教程

想要實現在網頁裏一鍵調到你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);

![這裏寫圖片描述]
這裏寫圖片描述

這裏的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();
    }
  }

接下來添加你的短鏈接,按照提示添加即可
這裏寫圖片描述

下面我們從瀏覽器裏打開 短鏈接,看看發生了什麼、
這裏寫圖片描述

很神奇的從 網頁轉跳到了詳情頁 有木有!!!

快去試試吧~~

DEMO下載地址

如果你喜歡我的博客 請評論或者點贊!~!謝謝

發佈了113 篇原創文章 · 獲贊 589 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章