2014-01-06 3 views
3

Я новичок, когда дело доходит до Phonegap разработки. Я работаю над этим в течение нескольких дней, чтобы иметь простое приложение, которое открывает URL-адрес в приложении, используя InAppBrowser. Я придумал следующий код, который успешно загружает страницу, которую я пытаюсь показать в приложении.Phonegap load InAppBrowser и url change

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta name="format-detection" content="telephone=no" /> 
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script> 
<script type="text/javascript" charset="utf-8" src="js/index.js"></script> 
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 
<title>Riderunner</title> 

<script type="text/javascript" charset="utf-8"> 

        // Wait for Cordova to load 
    document.addEventListener("deviceready", onDeviceReady, false); 

    var ref= null; 

    function iabLoadStart(event) { 
      alert(event.type + ' - ' + event.url); 
    } 

    function iabLoadStop(event) { 
     alert(event.type + ' - ' + event.url); 
    } 

    // Cordova is ready 
    function onDeviceReady() { 
     ref = window.open('http://google.com', '_self', 'location=yes'); 
     ref.addEventListener('loadstart', iabLoadStart); 
     ref.addEventListener('loadstop', iabLoadStop); 
    } 

</script> 

</head> 
<body onload="onDeviceReady()"> 
</body> 
</html> 

Теперь, в чем проблема я столкнулся это loadstart событие не срабатывает. Что я имею в виду, это предупреждение, которое я выставил в своем слушателе, не всплывает. Во-вторых, я хочу знать, что во время работы внутри InAppBrowser мы можем обнаружить изменение url или есть ли какое-либо событие для обнаружения URL-адреса? Я хочу открыть какой-то конкретный URL-адрес в браузере устройств (пользователь выбрал), иначе отобразить их в приложении. благодарит за любую помощь.

ответ

2

Изменение ref = window.open('http://google.com', '_self', 'location=yes'); в

ref = window.open('http://google.com', '_blank', 'location=yes'); 

Нет необходимости вызывать onDeviceReady() на OnLoad тела.

+0

удалено из кузова, теперь ничего не отображается. –

+0

Как я могу проверить, изменился ли URL? я имею в виду, что я хочу использовать параметр _blank, если какая-либо часть (подстрока) url сопоставляется? –

+0

Надеюсь, у вас есть файл cordova.js в папке js. Я сделал три изменения, и это сработало. 1) Добавлен точный путь кордовы. 2) _blank вместо _self. 3) Удалено onload = "onDeviceReady()" –

0
Please try with the below code it will always capture event if url is changed in your browser :- 
    ref = window.open('http://google.com', '_blank', 'location=yes'); 
ref.addEventListener('loadstart', function(event) { 
         var URL=event.url; 
         var n = URL.startsWith("http://XXXXXXXXXXXXXX"); 
        if(n==true){ 
         iabRef.close(); 
         // root reload 
        } 
        }); 
Смежные вопросы