<a target="_blank" data-rel="external" href="http://www.kidzout.com">www.kidzout.com</a>
嘿专家我正在使用phonegap 2.9.0,我正在使用上面的代码在浏览器中打开链接,但它在同一个应用程序中打开它......如何打开它Safari浏览器?
它在同一个应用程序中打开网站,然后我无法返回该应用程序,所以我需要删除该应用程序并重新安装......
正如在类似问题中所建议的那样,根据InAppBrowser 文档,使用 JavaScript 调用window.open
并将target
参数设置为:_system
<a href="#" onclick="window.open('http://www.kidzout.com', '_system'); return false;">www.kidzout.com</a>
这应该可行,尽管更好和更灵活的解决方案是拦截所有链接的click
事件,并window.open
使用从链接属性读取的参数进行调用。
请记住,您必须安装 InAppBrowser 插件才能使其工作:
cordova plugin add cordova-plugin-inappbrowser
正如其他帖子中所回答的那样,对于不同的平台,您有两种不同的选择。我要做的是:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
// Mock device.platform property if not available
if (!window.device) {
window.device = { platform: 'Browser' };
}
handleExternalURLs();
}
function handleExternalURLs() {
// Handle click events for all external URLs
if (device.platform.toUpperCase() === 'ANDROID') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
navigator.app.loadUrl(url, { openExternal: true });
e.preventDefault();
});
}
else if (device.platform.toUpperCase() === 'IOS') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
window.open(url, '_system');
e.preventDefault();
});
}
else {
// Leave standard behaviour
}
}
如您所见,我正在检查设备平台,并根据该平台使用不同的方法。如果是标准浏览器,我会保留标准行为。从现在开始,该解决方案将在 Android、iOS 和浏览器中正常工作,而 HTML 页面不会更改,因此它可以将 URL 表示为标准锚点
<a href="http://stackoverflow.com">
该解决方案需要 InAppBrowser 和 Device 插件
<a onclick="navigator.app.loadUrl('https://google.com/', { openExternal:true });">Link</a>
适用于我的 android & PG 3.0
在 android 和 iphone 中有 2 种不同的方式打开 URL。
对于 IOS 使用以下代码。
window.open("http://google.com", '_system');
对于 android 操作系统,请使用以下代码。
navigator.app.loadUrl("http://google.com", {openExternal : true});
这些答案都不够明确,无法在每个平台上打开外部链接。根据inAppBrowser 文档:
安装
cordova plugin add cordova-plugin-inappbrowser
覆盖 window.open(可选,但为简单起见推荐)
window.open = cordova.InAppBrowser.open;
如果您不覆盖window.open
,您将使用本机window.open
功能,并且不能期望跨平台获得相同的结果。
使用它在默认浏览器中打开链接
window.open(your_href_value, '_system');
请注意,inAppBrowser 的目标(这是插件名称所暗示的用途)是'_blank'
,而不是'_system'
.
如果没有上述步骤,我无法在默认浏览器应用程序跨平台中打开链接。
这是链接的示例(实时)单击处理程序:
document.addEventListener('click', function (e) {
if (e.target.tagName === 'A' &&
e.target.href.match(/^https?:\/\//)) {
e.preventDefault();
window.open(e.target.href, '_system');
}
});
最后这篇文章在 iOS 上帮助了我:http ://www.excellentwebworld.com/phonegap-open-a-link-in-safari-or-external-browser/ 。
打开“CDVwebviewDelegate.m”文件并搜索“shouldStartLoadWithRequest”,然后将这段代码添加到函数的开头:
if([[NSString stringWithFormat:@"%@",request.URL] rangeOfString:@"file"].location== NSNotFound) { [[UIApplication sharedApplication] openURL:[request URL]]; return NO; }
在navigator.app.loadUrl("http://google.com", {openExternal : true});
安卓上使用是可以的。
通过科尔多瓦 3.3.0。
如果你碰巧有 jQuery,你可以像这样拦截点击链接:
$(document).on('click', 'a', function (event) {
event.preventDefault();
window.open($(this).attr('href'), '_system');
return false;
});
这样就不用修改html中的链接了,可以节省很多时间。我已经使用委托进行了设置,这就是为什么您会看到它与文档对象相关联,并将“a”标签作为第二个参数。这样,无论何时添加,都将处理所有“a”标签。
当然你还是要安装 InAppBrowser 插件:
cordova plugin add org.apache.cordova.inappbrowser
window.open('http://www.kidzout.com', '_system');
将起作用,但前提是您安装了 inappbrowser 插件。要使用终端安装,请浏览到项目中的 www 文件夹并键入:
phonegap plugin add org.apache.cordova.inappbrowser
或者
cordova plugin add org.apache.cordova.inappbrowser
然后,您的链接将在浏览器中打开。
对于 Cordova 5.0 及更高版本,插件 InAppBrowser 在 Cordova 插件注册表中重命名,因此您应该使用安装它
cordova plugin add cordova-plugin-inappbrowser --save
然后使用
<a href="#" onclick="window.open('http://www.kidzout.com', '_system');">www.kidzout.com</a>
我正在使用 PhoneGap Build (v3.4.0),专注于 iOS,我需要在我的 config.xml 中有这个条目,以便 PhoneGap 识别 InAppBrowser 插件。
<gap:plugin name="org.apache.cordova.inappbrowser" />
之后,使用 window.open(url, target) 应该可以按预期工作,如此处所述。
我还遇到了链接没有在浏览器上打开的问题,这是我的修复步骤:
1:安装这个cordova插件。
cordova plugin add cordova-plugin-inappbrowser
2:在html中添加打开链接,如下所示。
<a href="#" onclick="window.open('https://www.google.com/', '_system', 'location=yes');" >Google</a>
3:这是最重要的一步,因此我遇到了很多问题:下载cordova.js
文件并将其粘贴到www
文件夹中。然后在index.html
文件中对此进行引用。
<script src="cordova.js"></script>
此解决方案适用于环境 android 和 iPhone。
像这样 :
<a href="#" onclick="window.open('https://www.nbatou.com', '_system'); return false;">https://www.nbatou.com</a>