diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java index 8bc9f73281..2f0b4b5ba9 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java @@ -32,6 +32,7 @@ import com.taobao.weex.adapter.IWXUserTrackAdapter; import com.taobao.weex.appfram.clipboard.WXClipboardModule; import com.taobao.weex.appfram.navigator.IActivityNavBarSetter; +import com.taobao.weex.appfram.navigator.INavigator; import com.taobao.weex.appfram.navigator.WXNavigatorModule; import com.taobao.weex.appfram.pickers.WXPickersModule; import com.taobao.weex.appfram.storage.IWXStorageAdapter; @@ -512,6 +513,14 @@ public static IActivityNavBarSetter getActivityNavBarSetter() { return WXSDKManager.getInstance().getActivityNavBarSetter(); } + public static INavigator getNavigator() { + return WXSDKManager.getInstance().getNavigator(); + } + + public static void setNavigator(INavigator navigator) { + WXSDKManager.getInstance().setNavigator(navigator); + } + public static void setActivityNavBarSetter(IActivityNavBarSetter activityNavBarSetter) { WXSDKManager.getInstance().setActivityNavBarSetter(activityNavBarSetter); } diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKManager.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKManager.java index b99b48412b..ad12499e83 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKManager.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKManager.java @@ -37,6 +37,7 @@ import com.taobao.weex.adapter.IWXUserTrackAdapter; import com.taobao.weex.adapter.URIAdapter; import com.taobao.weex.appfram.navigator.IActivityNavBarSetter; +import com.taobao.weex.appfram.navigator.INavigator; import com.taobao.weex.appfram.storage.DefaultWXStorage; import com.taobao.weex.appfram.storage.IWXStorageAdapter; import com.taobao.weex.appfram.websocket.IWebSocketAdapter; @@ -489,4 +490,14 @@ public interface InstanceLifeCycleCallbacks { void onInstanceDestroyed(String instanceId); void onInstanceCreated(String instanceId); } + + private INavigator mNavigator; + + public INavigator getNavigator() { + return mNavigator; + } + + public void setNavigator(INavigator mNavigator) { + this.mNavigator = mNavigator; + } } diff --git a/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/INavigator.java b/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/INavigator.java new file mode 100644 index 0000000000..25e4395498 --- /dev/null +++ b/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/INavigator.java @@ -0,0 +1,12 @@ +package com.taobao.weex.appfram.navigator; + +/** + * Created by zhengshihan on 2018/8/9. + */ + +public interface INavigator { + + boolean push(String param); + + boolean pop(String param); +} diff --git a/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/WXNavigatorModule.java b/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/WXNavigatorModule.java index acd33339f8..444c03d7dc 100644 --- a/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/WXNavigatorModule.java +++ b/android/sdk/src/main/java/com/taobao/weex/appfram/navigator/WXNavigatorModule.java @@ -116,6 +116,15 @@ public void push(String param, JSCallback callback) { } } + if (WXSDKEngine.getNavigator()!= null) { + if (WXSDKEngine.getNavigator().push(param)) { + if (callback != null) { + callback.invoke(MSG_SUCCESS); + } + return; + } + } + try { JSONObject jsonObject = JSON.parseObject(param); String url = jsonObject.getString(URL); @@ -157,6 +166,16 @@ public void pop(String param, JSCallback callback) { } } + + if (WXSDKEngine.getNavigator()!= null) { + if (WXSDKEngine.getNavigator().pop(param)) { + if (callback != null) { + callback.invoke(MSG_SUCCESS); + } + return; + } + } + if (mWXSDKInstance.getContext() instanceof Activity) { if (callback != null) { callback.invoke(MSG_SUCCESS);