diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java
index 0df3b64..e360210 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/CommonConstant.java
@@ -57,6 +57,12 @@ public class CommonConstant {
*/
public static final String CURRENT_TIME_MILLIS = "currentTimeMillis";
+
+ /**
+ * TOKEN
+ */
+ public static final String TOKEN = "token";
+
/**
* 签名加密格式
*
diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java
index 59e4525..07522d6 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java
@@ -43,10 +43,11 @@ import java.util.concurrent.ConcurrentHashMap;
@NoArgsConstructor
public class JHApiExecution {
+
/**
* JHApiClient实例
*/
- public JHApiClient jhApiClient;
+ private JHApiClient jhApiClient;
/**
* token的超时时间
@@ -157,7 +158,7 @@ public class JHApiExecution {
/**
* @return
*/
- private String getCurrentTimeMillis() {
+ public String getCurrentTimeMillis() {
if (authType == AuthType.ACCESS_SECRET_MODE || !isUsedServerTime) {
return String.valueOf(System.currentTimeMillis());
}
@@ -196,7 +197,7 @@ public class JHApiExecution {
headers.put(CommonConstant.CURRENT_TIME_MILLIS, currentTimeMillis);
headers.put(CommonConstant.SIGNATURE, getsSignature(username, currentTimeMillis));
} else if (authType == AuthType.TOKEN_MODE && StringUtils.isNotBlank(username)) {
- headers.put("token", getToken(username));
+ headers.put(CommonConstant.TOKEN, getToken(username));
}
return headers;
}
diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java
index 24ba9e8..52f6fe8 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java
@@ -91,4 +91,10 @@ public class AppPathConstant {
* 获取应用链接URL
*/
public static final String APPS_GET_URL_PATH = "/ws/api/apps/{appName}/url";
+
+
+ /**
+ * WEB启动会话URL
+ */
+ public static final String WEB_SESSION_URL_PATH = "/pageapi/apps/webclient/gui/{desktopId}";
}
diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartedInfo.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartedInfo.java
index f99981d..03afa30 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartedInfo.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartedInfo.java
@@ -34,4 +34,9 @@ public class AppStartedInfo {
* 作业id(有可能出现,但不是太明白)
*/
private String jobId;
+
+ /**
+ * WEB 启动会话URL
+ */
+ private String webSessionUrl;
}
diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java
index a88a901..5fc0f53 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java
@@ -2,6 +2,7 @@ package com.jhinno.sdk.openapi.api.app;
import com.fasterxml.jackson.core.type.TypeReference;
import com.jhinno.sdk.openapi.ArgsException;
+import com.jhinno.sdk.openapi.AuthType;
import com.jhinno.sdk.openapi.CommonConstant;
import com.jhinno.sdk.openapi.ServiceException;
import com.jhinno.sdk.openapi.api.JHApiExecution;
@@ -35,8 +36,10 @@ public class JHAppApiExecution extends JHApiExecution {
/**
* 启动一个会话
+ *
+ * 一、通过JHClient启动
*
- * 改方法返回一个重要的参数{@link AppStartedInfo#getJhappUrl()}(拉起景行客户端协议的URL)。
+ * 方法返回一个重要的参数{@link AppStartedInfo#getJhappUrl()}(拉起景行客户端协议的URL)。
*
* 测试:将该URL复制粘贴到浏览器的地址栏进行访问即可启动会话。
*
@@ -61,6 +64,16 @@ public class JHAppApiExecution extends JHApiExecution {
* iframe.src = "{@link AppStartedInfo#getJhappUrl()}";
*
*
+ *
+ * 注意:如果使用JHAppClient启动应用的,并且没有做浏览器端和服务器没有做时间同步,
+ * 那么 {@link AppStartRequest#setCurrentTimestamp(String)} 参数必传,
+ * 并使用js生产的时间,具体的参数见 {@link AppStartRequest#setCurrentTimestamp(String)}
+ *
+ *
通过浏览器启动
+ *
+ * window.open("{@link AppStartedInfo#getWebSessionUrl()}}")
+ *
+ *
* @param username 用户名
* @param appId 应用拆
* @param appStartRequest 启动参数
@@ -73,7 +86,26 @@ public class JHAppApiExecution extends JHApiExecution {
if (CollectionUtil.isEmpty(data)) {
throw new ServiceException(path, 500, "获取到的会话信息为空");
}
- return data.get(0);
+
+ AppStartedInfo appStartedInfo = data.get(0);
+
+ String webSessionUrlPath = AppPathConstant.WEB_SESSION_URL_PATH.replace("{desktopId}", appStartedInfo.getDesktopId());
+ String url = getJhApiClient().getUrl(webSessionUrlPath);
+
+ Map params = new HashMap<>();
+ AuthType authType = getAuthType();
+ if (authType == AuthType.TOKEN_MODE) {
+ params.put(CommonConstant.TOKEN, getToken(username));
+ } else if (authType == AuthType.ACCESS_SECRET_MODE) {
+ params.put(CommonConstant.USERNAME, username);
+ params.put(CommonConstant.ACCESS_KEY, getAccessKey());
+ String currentTimeMillis = getCurrentTimeMillis();
+ params.put(CommonConstant.CURRENT_TIME_MILLIS, currentTimeMillis);
+ params.put(CommonConstant.SIGNATURE, getsSignature(username, currentTimeMillis));
+ }
+ url = JHApiClient.getUrl(url, params);
+ appStartedInfo.setWebSessionUrl(url);
+ return appStartedInfo;
}
/**
diff --git a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java
index 3b42b09..8b4c206 100644
--- a/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java
+++ b/jhinno-openapi-java-sdk/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java
@@ -196,8 +196,16 @@ public class JHFileApiExecution extends JHApiExecution {
}
body.put("uploadPath", uploadPath);
- ResponseResult