Открыть URL-адрес в веб-просмотре – телефонная развязка

Я хотел бы знать, как я могу открыть URL-адрес в контексте приложения embed webview. В настоящее время эта демонстрация откроет новую вкладку во внешнем браузере, поэтому не то, что я ожидаю. Я использую google.com только для тестирования.

Резюме, я ищу функциональную демонстрацию.

<?xml version="1.0" encoding="UTF-8"?> <!-- config.xml reference: https://build.phonegap.com/docs/config-xml --> <widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" xmlns:android = "http://schemas.android.com/apk/res/android" id = "com.xxx.xxxxx" version = "1.0.0"> <preference name="stay-in-webview" value="true" /> <access origin="*" browserOnly="true" subdomains="true" /> <content src="index.html" /> <allow-navigation href="https://google.com/*" /> <gap:plugin name="cordova-plugin-whitelist" source="npm" version="~1" /> <gap:plugin name="org.apache.cordova.inappbrowser" /> <gap:plugin name="org.apache.cordova.splashscreen" /> <preference name="phonegap-version" value="cli-5.4.1" /> <preference name="permissions" value="none"/> <preference name="target-device" value="universal"/> <preference name="fullscreen" value="true"/> </widget> 

 <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="css/index.css" /> </head> <body> <div> <script type="text/javascript" charset="utf-8"> document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { window.location.href = 'https://google.com'; } </script> </div> <script type="text/javascript" src="cordova.js"></script> </body> </html> 

Обновление: полный файл xml: https://codeshare.io/Vw3Fl

Solutions Collecting From Web of "Открыть URL-адрес в веб-просмотре – телефонная развязка"

пытаться :

 window.open('https://google.com', '_self ', 'location=yes'); 

вместо :

 window.location.href = 'https://google.com'; 

Это будет использовать InAppBrowser и использовать _self в качестве цели.

Вы должны добавить эту строку в файл config.xml, чтобы разрешить навигацию по внешним URL-адресам

 <allow-navigation href="*" /> 

Это позволит перейти на любой внешний URL-адрес, если вы просто хотите разрешить навигацию по Google, а затем добавить эту строку

 <allow-navigation href="https://google.com" /> 

Вы можете проверить остальную часть документации на странице плагина

https://github.com/apache/cordova-plugin-whitelist

Возможно, вам придется добавить следующее в ваш XML-файл phonegap:

 <?xml version="1.0" encoding="UTF-8"?> <phonegap> <access origin="https://abcx.com" subdomains="true" /> </phonegap> 

Очень простой способ открыть страницу в системном браузере в приложении phonegap – это сделать эту страницу в iframe.

 <iframe src="http://www.google.com></iframe> 

Вы можете изменить URL-адрес в iframe, используя dom update.

Это будет загружаться на странице в собственном системном браузере.

Для тех, кто сталкивается с этой проблемой при использовании Phonegap 6.3.1, вы должны правильно настроить URL-адреса и использовать плагин cordova-plug-inappbrowser .

Читайте дальше, как это сделать.


Во-первых, убедитесь, что у вас есть белые адреса, которые вы хотите открыть. Вы делаете это, добавляя их в hrefs тегов <access> , <allow-intent> и allow-navigation тегов в файле config.xml в корне проекта. Что-то в этом роде:

 <?xml version='1.0' encoding='utf-8'?> <widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> ... <access origin="*" /> <allow-intent href="*" /> <allow-navigation href="*" /> ... </widget> 

(Примечание: «*» в вышеуказанных hrefs позволяет открывать любой URL-адрес. В процессе производства вы, вероятно, хотите ограничить определенные URL-адреса / пути)

Затем в файле index.html добавьте следующий javascript:

 <script type="text/javascript"> document.addEventListener('deviceready', function() { var url = 'https://www.google.com' // change to whatever you want cordova.InAppBrowser.open(url, '_self', 'location=no'); }, false) </script> 

Этот скрипт использует плагин cordova-plugin-inappbrowser, который, если вы сгенерировали приложение с использованием стандартного шаблона Phonegap, уже должен быть включен в ваш файл config.xml.

Сценарий ожидает, что устройство будет готово, затем использует плагин cordova-plug-inappbrowser для открытия заданного URL -адреса . Параметр '_self' означает, что он открывает страницу в веб-просмотре Phonegap, а 'location=no' означает, что адресной строки не будет. Для других параметров см. Документацию для плагина cordova-plug-inappbrowser (ссылка выше).

Наконец, чтобы протестировать приложение в соответствующих эмуляторах (при условии, что вы установили CLG Phonegap ), выполните следующие команды:

 phonegap run ios --verbose --stack-trace phonegap run android --verbose --stack-trace