我已经部署了一个带有 sencha touch + phonegap 的原生应用程序 android + ios。如果我们点击应用程序内的链接,它会在应用程序内打开,我们不能出去。
有人现在如何让链接在手机浏览器中打开?
我已经部署了一个带有 sencha touch + phonegap 的原生应用程序 android + ios。如果我们点击应用程序内的链接,它会在应用程序内打开,我们不能出去。
有人现在如何让链接在手机浏览器中打开?
window.open("yoururl", '_blank');
只需在 app.js 中的“启动”函数中添加此函数,如下所示:
launch: function() {
// Destroy the #appLoadingIndicator element
//Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('yourApp.view.Main'));
// Voila :
Ext.Viewport.element.dom.addEventListener('click', function (e) {
if (e.target.tagName !== 'A') {
return;
};
var url = e.target.getAttribute('href');
var containsHttp = new RegExp('http\\b');
//if href value begins with 'http'
if(containsHttp.test(url)) {
e.preventDefault();
window.open(url, "_system"); // For iOS
navigator.app.loadUrl(url, {openExternal: true}); //For Android
}
else {
return;
}
}, false);
}, //...
然后你可以同时为 android 和 iOS 构建。
如果我没记错的话,我使用的 phonegap 版本是 2.9.0。
我有同样的问题并解决如下:
在您的项目中嵌入 JQuery javascript 文件。就我而言,它是:
<script type="text/javascript" charset="utf-8" src="js/jquery-1.10.2.min.js"></script>
然后我编写了以下函数,我在 onDeviceReady 函数中调用了它:
function enableHttpLinks() {
$('.externalLink').click(function(e) {
e.preventDefault();
url = $(this).attr("href");
window.open(url, '_system');
});
}
为了使此功能起作用,您需要将类分配给externalLink
要在设备浏览器中打开的所有链接,如下所示:
<a href="..." class="externalLink">your link title</a>
祝你好运...