2015-06-07 4 views
3

я построил PhoneGap приложение с пешеходным, и когда я пытаюсь открыть ссылку в нем,Открыть ссылку в своем собственном PhoneGap по умолчанию WebView

  • это не открытие в том же WebView , кроме того, он запускает окно выбора браузера .

что я хочу, если я нахожусь на href, он должен загрузить webapp внутри webview, который загрузил default.html по умолчанию. Я попытался перенаправить страницу с помощью js.

я не уверен, что я сделал интеграцию правильно, я просто следовал этой ссылке Codova Plugin

+0

Вы должны размещать код, который вы пробовали - это путь кто-то может объясните, почему он работает не так, как ожидалось. –

+0

это пример кода, я просто добавил плагин переходов, затем добавил строку в index.html, Load Papa Bijoy

+0

Это все еще не говорит никому, кто пытается ответить на вопрос. Какой пример кода? Какой файл index.html? –

ответ

3

Вы должны использовать inappbrowser плагин для достижения этой: https://github.com/apache/cordova-plugin-inappbrowser

После установки плагина через cordova plugin add cordova-plugin-inappbrowser, вам может написать что-то вроде:

<span id="myLink">Load Pap</span> 

<script> 
    document.addEventListener("deviceready", onDeviceReady, false); 

    function onDeviceReady() 
    { 
     var myLink = document.getElementById('myLink'); 

     myLink.addEventListener("click", function() 
     { 
      cordova.InAppBrowser.open('http://192.168.1.11/papa', '_self', 'location=no'); 
     }) 
    } 
</script> 
+0

inAppBrowser запустит веб-просмотр по умолчанию? не пешеходный переход? – Bijoy

+1

Да, он интегрирован в ваше приложение, и вы можете показать/скрыть много вещей (то есть location = не скрывать адресную строку). –

2

Ответ Ivan - хорошее решение, но имейте в виду, что InApp Браузер открывает браузер через ваше приложение, например, если вам нужно открыть и внешний сайт, выполните проверку подлинности, а затем вернитесь в свое приложение в состоянии, которое вы оставили.

Вы видели этот ответ? Loading remote html in PhoneGap or Cleaver (Cordova) on iOS

Вы также можете использовать JS:

window.location.href = <your_remote_url> 

Что JS вы пробовали?

1

Для тех, у кого есть эта проблема при использовании Phonegap 6.3.1.

Убедитесь, что вы белый список URL-адрес, который вы хотите открыть в <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-plug-inappbrowser, который, если вы сгенерировали приложение с использованием стандартного шаблона Phonegap, уже должен быть включен в ваш файл config.xml.

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

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

phonegap run ios --verbose --stack-trace 
phonegap run android --verbose --stack-trace 
Смежные вопросы