Создаем приложение для Android, используя sencha touch + phonegap 3.0, требование открыть некоторые URL-адреса во внешнем браузере. Для Ios я использую Ext.device.Device.openURL (url) и его работоспособность. Но в андроиде, когда я нажимаю ссылку, он открыт в моем приложении.
Что я пытался
window.open(url, '_system', 'location=no'); // not worked still opens the in app view window.open(alltaskurl, '_blank', 'location=yes'); // not worked opens in app view
Затем я установил плагин PhoneGap InAppBrowser и попытался изменить файл config.xml
<feature name="InAppBrowser"> <param name="android-package" value="org.apache.cordova.InAppBrowser" /> </feature> window.open('http://apache.org', '_blank', 'location=yes'); // not worked as well
Я не знаю, что с этим делать, я трачу много времени, чтобы решить эту проблему, пожалуйста, помогите мне .. спасибо заранее
После установки InAppBrowser
используйте:
window.open(url, '_system');
Спасибо Дибиш .. ты поставил меня на правильный путь. Я использую библиотеку, которая делает некоторые из своих собственных href, поэтому, чтобы избежать возиться с этой библиотекой, я сделал это вместо этого:
window.onclick = clickEvent; function clickEvent(e){ e = e || window.event; var t = e.target || e.srcElement if ( t.name || t.href ){ if( typeof t.href == "string" && t.href.substr(0,4) == 'http' ){ if( t.attributes.href.value !== "#" ){ window.open(t.href, '_system', 'location=yes'); } return false; // no further action for this click } } return true; // process click as normal }
Edit: используется window.open () вместо Android navigator.app.loadUrl (). Мне также пришлось отсеять события href = "#".
Я сделал это со следующим кодом
navigator.app.loadUrl(url, {openExternal: true});
Я получил его с одного из форумов sencha