Краткое примечание перед началом: пока я обсуждаю ярлыки Apple, чтобы объяснить контекст моего вопроса, Это все еще проблема в Интернете/JavaScript . Единственное, что вам нужно знать, это то, что я не могу запустить асинхронный или обратный код JavaScript . Если вам интересно с подробностями точной реализации/ограничений кода JavaScript, сделанного в этом посте, см. Запуск JavaScript в ярлыках. Пример краткости, отображающего мою проблему (о которой рассказывается о том, о чем говорится в этом посте), можно найти здесь < /p>
Однажды у меня было какое-то намеренно ужасное и устаревшее Javascript, который я был вынужден использовать в качестве обходного увлечения для ограничения на приложение для автоматизации блокировки на моем iPhone, названном «короткометражные». Видите ли, бывают случаи, когда мне нужны автоматизации, которые я пишу для ярлыков, чтобы получить доступ к API или отправить некоторые вызовы API. У ярлыков есть внутренняя библиотека запросов API под названием «Получить содержимое URL», но погранично бесполезно, потому что она только возвращает тела реагирования. Поскольку мне понадобились дополнительные данные, такие как код состояния запроса, я сделал свою собственную замену запрашивания API API в JavaScript. Это то, как это выглядело в ярлыках: < /p>
data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://jsonplaceholder.typicode.com/users",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o));
< /code>
И вот он как более легкий фрагмент человека: < /p>
"
o = {
error: "NetworkError",
message: "You are offline!",
stack: null
};
if (navigator.onLine) {
r = new XMLHttpRequest();
r.open("GET", "https://jsonplaceholder.typicode.com/users", false);
try {
r.send();
o = {
"Status": r.status,
"Response": r.responseText
}
} catch (e) {
o = {
error: e?.name ?? "UnknownError",
message: e?.message ?? String(e),
stack: e?.stack ?? null
};
}
};
document.write(JSON.stringify(o));
< /code>
< /div>
< /div>
< /p>
Я бы затем извлекал текст с веб -страницы JavaScript, а затем перешел к моей жизни. Тем не менее, я обнаружил, что некоторые URL -адреса проходили в это только ровное, не работают. Например, возьмите https://zenquotes.io/api/random
, запрос REST API получить, который должен вернуть случайную цитату:
< /div>
< /div>
< /p>
и вот его простые URL-эквивалент: < /p>
data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://zenquotes.io/api/random",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o));
< /code>
На мобильном устройстве все, что он делает, - это смутная ошибка "Networkerr", объясняющая, что она не может подключиться к Интернету. К счастью, я получаю более словесную ошибку, когда запускаю код на своем компьютере, говоря, что он «не загрузил ». Понятия не имею, что это значит, поч ... tprequests
Краткое примечание перед началом: пока я обсуждаю ярлыки Apple, чтобы объяснить контекст моего вопроса, Это все еще проблема в Интернете/JavaScript . Единственное, что вам нужно знать, это то, что [b] я не могу запустить асинхронный или обратный код JavaScript [/b]. Если вам интересно с подробностями точной реализации/ограничений кода JavaScript, сделанного в этом посте, см. Запуск JavaScript в ярлыках. Пример краткости, отображающего мою проблему (о которой рассказывается о том, о чем говорится в этом посте), можно найти здесь < /p>
Однажды у меня было какое-то намеренно ужасное и устаревшее Javascript, который я был вынужден использовать в качестве обходного увлечения для ограничения на приложение для автоматизации блокировки на моем iPhone, названном «короткометражные». Видите ли, бывают случаи, когда мне нужны автоматизации, которые я пишу для ярлыков, чтобы получить доступ к API или отправить некоторые вызовы API. У ярлыков есть внутренняя библиотека запросов API под названием «Получить содержимое URL», но погранично бесполезно, потому что она только возвращает тела реагирования. Поскольку мне понадобились дополнительные данные, такие как код состояния запроса, я сделал свою собственную замену запрашивания API API в JavaScript. Это то, как это выглядело в ярлыках: < /p> [code]data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://jsonplaceholder.typicode.com/users",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o)); < /code> И вот он как более легкий фрагмент человека: < /p>
"
o = { error: "NetworkError", message: "You are offline!", stack: null };
if (navigator.onLine) { r = new XMLHttpRequest(); r.open("GET", "https://jsonplaceholder.typicode.com/users", false);
try { r.send(); o = { "Status": r.status, "Response": r.responseText } } catch (e) { o = { error: e?.name ?? "UnknownError", message: e?.message ?? String(e), stack: e?.stack ?? null }; } }; document.write(JSON.stringify(o)); < /code> < /div> < /div> < /p> Я бы затем извлекал текст с веб -страницы JavaScript, а затем перешел к моей жизни. Тем не менее, я обнаружил, что некоторые URL -адреса проходили в это только ровное, не работают. Например, возьмите https://zenquotes.io/api/random [/code], запрос REST API получить, который должен вернуть случайную цитату:
< /div> < /div> < /p> и вот его простые URL-эквивалент: < /p> data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://zenquotes.io/api/random",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o)); < /code> На мобильном устройстве все, что он делает, - это смутная ошибка "Networkerr", объясняющая, что она не может подключиться к Интернету. К счастью, я получаю более словесную ошибку, когда запускаю код на своем компьютере, говоря, что он «не загрузил [URL]». Понятия не имею, что это значит, почему это происходит или как это исправить (если это даже возможно). Все, что я сделал, это изменил URL-адрес, который он запрашивает, поэтому я предполагаю, что мой код, как это, недостаточно всеобъемлющий или что я упускаю какую-то важную информацию. Я думаю, потому что когда я пытаюсь запросить URL -адрес с помощью нативной библиотеки запросов ярлыка, он работает нормально. Есть идеи? Если вы хотите посмотреть, как выглядит эта проблема, где я ее запускаю, проверьте этот демонстрационный сочетание, которое я сделал (все, что она делает, - это все, о чем я только что говорил здесь, и позволяет вам проверить свой собственный код JS, если у вас есть идея для решения)