uniapp вызывает API uni и взаимодействует со страницей vue в локальном и удаленном HTML-коде, загруженном веб-представлением.
uniapp вызывает API uni и взаимодействует со страницей vue в локальном и удаленном HTML-коде, загруженном веб-представлением.

Компонент веб-представления uni-app поддерживает загрузку удаленных веб-страниц. В среде приложения он также поддерживает загрузку локальных HTML-страниц.

На странице загрузки веб-представления будет задействовано использование wx, plus, uni и других объектов.

  • Используйте wxizapi под существующим апплетом,Нужно представиться Вичатпоставлятьизhttps://res.wx.qq.com/open/js/jweixin-1.4.0.js。
  • По умолчанию в существующем приложении есть объект plus.,Нет Нужно представитьсяjsдокумент.
  • Независимо от того, находится ли оно под существующим апплетом или существующим приложением,Используйте uniизапи,Нужно представить https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.0.1.52.js

В этой статье будет подробно описано, как использовать объект uni в веб-просмотре и как взаимодействовать со страницей vue.

Начиная с HBuilderX версии 1.0.0, uni-app поддерживает вызов API uni в веб-просмотре.

Файлы, зависящие от ссылки

Чтобы вызвать API uni в HTML, загруженном веб-представлением, вам необходимо сослаться на необходимый JS-SDK в HTML.

Язык кода:javascript
копировать
<!-- Вичат JS-SDK Если вам не нужна совместимость с апплетом, нет необходимости ссылаться на это. JS документ. -->  
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>  
<!-- uni из На SDK должна быть ссылка. -->  
<script type="text/javascript" src="//js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.0.1.52.js"></script>

Tips

  • Эти JS Файлсуществовать web-view Загружаю это HTML из цитируется в файле вместо uni-app В проектеиздокумент.
  • Если не рассматривать Вичат Мини программа,Вичатиз представлять не нужно JS-SDK。
  • Когда два файла импортируются одновременно,Обратите внимание на порядок введения из,Вичатизнуждатьсясуществоватьвперед。

Время звонка

существовать Файлы,зависящие от ссылкиназад,нуждатьсясуществовать HTML средний мониторинг UniAppJSBridgeReady Только после того, как событие сработает, его можно безопасно вызвать. uni из API。

Язык кода:javascript
копировать
document.addEventListener('UniAppJSBridgeReady', function() {  
    uni.getEnv(function(res) {  
        console.log('Текущая среда:' + JSON.stringify(res));  
    });  
});

Переход на страницу

Поддержка звонков всем из uni Методы маршрутизации могут быть реализованы HTML Вернитесь на страницу приложения.

После существования UniAppJSBridgeReady вызовите метод маршрутизации, чтобы перейти на страницу внутри приложения.

Язык кода:javascript
копировать
document.addEventListener('UniAppJSBridgeReady', function() {  
    document.querySelector('.btn-list').addEventListener('click', function(evt) {  
        var target = evt.target;  
        if (target.tagName === 'BUTTON') {  
            var action = target.getAttribute('data-action');  
            if(action === 'navigateTo') {  
                uni.navigateTo({  
                    url: '/pages/component/button/button'  
                });  
            }  
        }  
    });  
});

Отправить сообщение

может пройти uni.postMessage существовать HTML Среднее приложение Отправить сообщение. Для реализации этой функции необходимо выполнить следующие два шага.

Прослушайте событие сообщения веб-просмотра

монитор web-view Компоненты message событие,Ранназадсуществоватьсобытиеперезвонитьиз event.detail.data Получите переданное сообщение.

Язык кода:javascript
копировать
<template>  
    <view>  
        <web-view src="http://192.168.1.1:3000/test.html" @message="handleMessage"></web-view>  
    </view>  
</template>  

<script>  
    export default {  
        methods: {  
            handleMessage(evt) {  
                console.log('Получено сообщение: ' + JSON.stringify(evt.detail.data));  
            }  
        }  
    }  
</script>

от HTML к приложению Отправить сообщение

uni.postMessage Формат параметра носителя должен быть data: {}. Другими словами, доставка информации сообщения должна существовать. data в этом объекте.

Язык кода:javascript
копировать
document.addEventListener('UniAppJSBridgeReady', function() {  
    uni.postMessage({  
        data: {  
            action: 'postMessage'  
        }  
    });  
});

каждое исполнение postMessage Наконец, переданное сообщение будет сохранено в виде массива. Следовательно, существовать web-view из message обратный вызов события, полученный из event.detail.data из значений является массивом.

Получить текущую информацию об окружающей среде

HTML существуют В разных средах вам может потребоваться выполнять разные операции или доставлять разные сообщения. может пройти uni.getEnv() Метод получения текущей информации об окружающей среде.

Язык кода:javascript
копировать
document.addEventListener('UniAppJSBridgeReady', function() {  
    uni.getEnv(function(res) {  
        if (res.plus) {  
            console.log('Текущая среда для【5+App】');  
        } else if (res.miniprogram) {  
            console.log('когдавпередсредадля【Вичат Мини программа】');  
        }  
    });  
});

Собственный HTML

с HBuilderX v1.1.0 и выше,существовать 5+App Под платформой web-view Поддержка загрузки в приложении из HTML ресурс. местныйиз HTML Ресурсы должны храниться в том месте существования, которое указано в каталоге, то есть uni-app проект->hybrid->html Оглавление.

Язык кода:javascript
копировать
├─common      
├─components        
├─hybrid  
│  └─html  
│          test.html        
├─pages              
├─static  
│  App.vue  
│  main.js  
│  manifest.json  
│  pages.json

и html Файл, связанный с css、js Жду местный ресурс, тоже поставлю существовать hybrid->html каталог. Этот гибридный каталог не будет скомпилирован компилятором.,Поэтому файлы vue нельзя размещать здесь.,А другие каталоги не могут поместить местный HTML-документ. В будущем гибридный каталог также будет поддерживать смешанное использование других языков.

Уведомление:существовать Собственный HTML При введении сетевых ресурсов протокол должен быть заполнен. Например: https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.0.1.52.js.

Опыт бега

В примере web-view Загрузка — это собственный тестовый адрес, этот тест HTML См. вложение.

  • Чтобы загрузить сетевой адрес, вам необходимо локально запустить службу для загрузки сетевого адреса. HTML Вставьте его и измените hello uni-app серединаиз web-view Пример из src Адрес для может получить доступ к адресу локальной сети.
  • Если загружается Собственный HTML из, просто создайте новый каталог и используйте его HTML Вставьте его и измените web-view из src для /hybrid/html/test.html Вот и все.
  • Справочная документация:web-view

Связь формы компонента веб-представления в приложении и метода работы plus.webview.

Сама страница uni-appizvue представляет собой веб-просмотр.,компонент изweb-view на странице vue,Фактически, это дополнительный веб-просмотр. Однако на странице Vue нельзя разместить несколько компонентов веб-представления. Этот компонент по умолчанию является полноэкранным (он не закрывает собственный заголовок и встроенную навигацию). После использования кода плюса для получения текущего объекта веб-просмотра (см. эту статью https://ask.dcloud.net.cn/article/35036), а затем получения суб-веб-представления, вы также можете получить изplusизwebview, соответствующий компоненту веб-представления, а затем использовать его plus.webviewizrich api. Обратите внимание на время получения дочернего веб-просмотра. Если метод получения выполняется слишком рано, он может быть не получен.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose