Теперь у меня возникает проблема:
Я строю приложение чата, когда в приложении Line нажмите на кнопку «Пуск», он передаст пользователя на веб -сайт чата, посвященный им. В настоящее время при обработке на Android все все еще отображается нормально, но когда я строю на iOS, ничего не отображается. HTML этого экрана.
My Server: < /p>
public String init(
@RequestParam(value = "liffChannelId") String liffChannelId,
@RequestParam(value = "messageChannelId") String messageChannelId,
@RequestParam(value = "isInit", required = false) String isInit,
@RequestParam(value = "idToken", required = false) String idToken,
HttpServletRequest request, Model model) {
if (Objects.isNull(isInit)) {
return "s2013_chat";
}
ChatForm form = chatHelper.init(liffChannelId, messageChannelId, idToken, page, request);
return "s2013_chat";
}
< /code>
и в моем JS: < /p>
$(document).ready(function () {
const urlParams = new URLSearchParams(window.location.search);
const isInit = urlParams.get("isInit");
if (!isInit) {
initLiffApp();
}
});
function initLiffApp() {
const messageChannelId = new URLSearchParams(window.location.search).get("messageChannelId");
if (!messageChannelId) {
alert("MessageChannelId is missing");
return;
}
const liffChannelId = new URLSearchParams(window.location.search).get("liffChannelId");
if (!liffChannelId) {
alert("LiffChannelId is missing");
return;
}
const liffId = new URLSearchParams(window.location.search).get("liffId");
if (!liffId) {
alert("LiffId is missing");
return;
}
liff
.init({
liffId: liffId
})
.then(() => {
const idToken = liff.getIDToken();
if (!idToken) {
alert("Failed to get ID Token");
return;
}
sendToServer(liffChannelId, messageChannelId, idToken);
})
.catch(err => {
console.error("LIFF init error", err);
});
}
function sendToServer(liffChannelId, messageChannelId, idToken) {
const redirectUrl = `/counseling/chat/client?liffChannelId=${encodeURIComponent(liffChannelId)}&messageChannelId=${encodeURIComponent(messageChannelId)}&isInit=1&idToken=${encodeURIComponent(idToken)}`;
window.location.href = redirectUrl;
}
< /code>
При возвращении в первый раз, в JS позвоните на сервер Liff, чтобы получить Idtoken, и в настоящее время вызовет на сервер еще 1 время с Isinit. В это время бэкэнд начнет обработку. Однако, создавая iOS, я заметил, что, когда init в первый раз он возвращает пользовательский интерфейс экрана, не отображая ничего (я думаю, что это связано с обработкой, когда ISinit является нулевым, он возвращается, не вызывая Liff). < /P>
Я пытался комментировать ISINIT переменный чек, и теперь UI отображается, но не получает никаких CSS и JS.//if (Objects.isNull(isInit)) {
// return "s2013_chat";
//}
Я использовал веб -инспектор в браузере Safari, чтобы проверить и увидеть, что файлы CSS и JS были успешно загружены, но журнал консоли сообщает об ошибке, как показано. alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/ddjbuv4e.png"/>
Теперь у меня возникает проблема: Я строю приложение чата, когда в приложении Line нажмите на кнопку «Пуск», он передаст пользователя на веб -сайт чата, посвященный им. В настоящее время при обработке на Android все все еще отображается нормально, но когда я строю на iOS, ничего не отображается. HTML этого экрана. My Server: < /p> [code] public String init( @RequestParam(value = "liffChannelId") String liffChannelId, @RequestParam(value = "messageChannelId") String messageChannelId, @RequestParam(value = "isInit", required = false) String isInit, @RequestParam(value = "idToken", required = false) String idToken, HttpServletRequest request, Model model) { if (Objects.isNull(isInit)) { return "s2013_chat"; }
ChatForm form = chatHelper.init(liffChannelId, messageChannelId, idToken, page, request);
return "s2013_chat"; } < /code> и в моем JS: < /p> $(document).ready(function () { const urlParams = new URLSearchParams(window.location.search); const isInit = urlParams.get("isInit"); if (!isInit) { initLiffApp(); } });
function initLiffApp() { const messageChannelId = new URLSearchParams(window.location.search).get("messageChannelId"); if (!messageChannelId) { alert("MessageChannelId is missing"); return; }
const liffChannelId = new URLSearchParams(window.location.search).get("liffChannelId"); if (!liffChannelId) { alert("LiffChannelId is missing"); return; }
const liffId = new URLSearchParams(window.location.search).get("liffId"); if (!liffId) { alert("LiffId is missing"); return; }
liff .init({ liffId: liffId }) .then(() => { const idToken = liff.getIDToken(); if (!idToken) { alert("Failed to get ID Token"); return; } sendToServer(liffChannelId, messageChannelId, idToken); }) .catch(err => { console.error("LIFF init error", err); }); }
function sendToServer(liffChannelId, messageChannelId, idToken) { const redirectUrl = `/counseling/chat/client?liffChannelId=${encodeURIComponent(liffChannelId)}&messageChannelId=${encodeURIComponent(messageChannelId)}&isInit=1&idToken=${encodeURIComponent(idToken)}`; window.location.href = redirectUrl; } < /code> При возвращении в первый раз, в JS позвоните на сервер Liff, чтобы получить Idtoken, и в настоящее время вызовет на сервер еще 1 время с Isinit. В это время бэкэнд начнет обработку. Однако, создавая iOS, я заметил, что, когда init в первый раз он возвращает пользовательский интерфейс экрана, не отображая ничего (я думаю, что это связано с обработкой, когда ISinit является нулевым, он возвращается, не вызывая Liff). < /P> Я пытался комментировать ISINIT переменный чек, и теперь UI отображается, но не получает никаких CSS и JS.//if (Objects.isNull(isInit)) { // return "s2013_chat"; //} [/code] Я использовал веб -инспектор в браузере Safari, чтобы проверить и увидеть, что файлы CSS и JS были успешно загружены, но журнал консоли сообщает об ошибке, как показано. alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/ddjbuv4e.png"/>