【问题标题】:Phonegap Build - open external link in webviewPhonegap Build - 在 webview 中打开外部链接
【发布时间】:2015-09-28 19:33:46
【问题描述】:

我使用

在我的应用中加载了一个网页
window.location.href="http://www.webpage.com";

现在我想在浏览器中打开一个链接,但由于我在 webview 中,我的手机会忽略 window.open('http://webpage.com', '_system', 'location=yes'); 并在 webview 中打开链接...

我该如何解决这个问题(使用 PhoneGap Build)?

有趣的是,“_blank”在使用 ajax 时有效,但在我的情况下 使用 webview 时输出不准确 - 我需要一个带有 webview 的解决方案并覆盖它。

我的 config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns   = "http://www.w3.org/ns/widgets"
        xmlns:gap   = "http://phonegap.com/ns/1.0"
        id          = "com.me.me"
        versionCode = "10" 
        version     = "1.0.0" >                  <icon src="icon.png" />

<icon src="icon-60@3x.png" gap:platform="ios" width="180" height="180" />



        <name>App</name>

<gap:plugin name="cordova-plugin-inappbrowser" source="npm" version="1.0.0" />


<access origin="*" />

<preference name="EnableViewportScale" value="true"/>
<preference name="orientation" value="portrait" />
<preference name="fullscreen" value="true" />



<preference name="DisallowOverscroll" value="true"/>



</widget>

【问题讨论】:

  • 你能多谈谈你需要什么吗?您的问题有多种解决方案和方向。
  • 我在 webview 中有一个网页。在该网页上,我想在用户浏览器上打开一个链接..

标签: cordova hyperlink webview phonegap-build inappbrowser


【解决方案1】:

@Atartica,
好的。谢谢。现在您已经安装了 InAppBrowser,接下来需要安装其余部分。

  • #1 你需要为你的编译器设置版本,否则你以后会遇到类似的问题。
  • #2 您需要了解有关 Cordova/Phonegap 的更多信息。此时,您是在摸索。 FWIW,我没有为此获得报酬。这意味着,如果有人对你说短了,那是因为你似乎没有在听。

以下是您需要了解的内容 -- 祝您好运,如有需要,请提出更多问题。


1。尚不支持 iOS9!

PhoneGap Build iOS 9 支持状态

  • 2015 年 9 月 23 日

  • http://community.phonegap.com/nitobi/topics/phonegap-build-ios-9-support-status

  • 顶线:在 Cordova-iOS 4.0.0 之前,iOS 9 得到官方支持,Cordova 团队正在努力开发。不过有些问题可以通过一些简单的配置更改来解决。

    不管您使用的是什么,正如论坛帖子所述,直到 Cordova-iOS 4.0.0 才正式支持 iOS 9。这意味着,如果您遇到错误,您必须 - 创建一个解决方法,或等到它得到官方支持,向 cordova 提交错误报告,等到其他人创造了一个变通方法。

    至于何时支持 iOS9,我*个人*的猜测是很快。不超过 30 天。对此有很多抱怨。 Cordova 团队正在倾听。

2。没有设置编译器版本

来自 Phonegap Build 论坛,Petra Adds

我要补充一点:没有公告,PGB 将默认 PGB 版本从 3.7.0 更改为 cli-5.2.0。这导致所有未在 config.xml 中设置 'phonegap-version' 的人都面临着突然需要启动画面和白名单插件以及 config 和 html 中的额外白名单规范。

此外,一些插件似乎无法使用 cli-5.2.0 正确构建,导致有关“Class ***.java”的日志文件错误消息。

FWIW:Phonegap Build admitted to as much in this tweet

来自Top Mistakes by Developers new to Cordova/Phonegap,您已点击:

  • #6 没有为你的编译器设置“phonegap 版本”
  • #7 没有为你的插件设置“版本”
  • #10 不在 config.xml 中添加新的“白名单”和“白名单插件”参数。

#6 & #7

使用 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一组级联错误。

幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:

Cordova/PhoneGap 版本混乱
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

#10

这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1。但是,如果您的版本在 4.0.0 之前,比如说 3.5.0 或 3.7.0,那么您将不必添加 白名单 要求。

需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划和计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。

此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。该 CSP 需要进入您使用的每个 HTML 页面,就像您必须等待“设备就绪”一样。该文档隐藏在许多最新文档页面的底部。

相关链接

Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB 现在需要白名单

【讨论】:

  • 嗨,你真棒!谢谢!问题:我使用“本地通知”插件设置通知。我需要在应用程序关闭时加载/查看新闻……我该怎么做?我试过“setInterval”,但由于应用程序关闭,一切都停止工作......并且没有发送 ajax
  • 不知道。我还没有使用 local-notification。尝试发布一个新问题。
【解决方案2】:

@Atartica,
根据您上次的回复,我想说您想使用 InAppBroswer。

首先,这是基于使用 Phonegap Build,而不是 Cordova。有区别。

请注意,在大多数情况下,这将按预期工作。但是如果您没有为您的编译器设置版本,您将获得最新版本,并且您将需要使用 white-listplugin 和 CSP.

这里是详细信息 - Current Tripping Points to Cordova/Phonegap,请参阅第 2 项。没有设置编译器版本

【讨论】:

  • 嗨,我确实设置了插件,并且我在使用 ajax 加载网页时对其进行了测试。但是当我使用“window.location.href”或“window.open”加载它时,我的所有链接都在 webview 而不是 safari 中打开......
  • @Atartica,您的原始帖子没有提及关于使用插件的内容。这也是使用iOS的第一个建议。也许现在你会明白为什么你的问题被打倒了。 -- 请发布您的config.xml。请说明您的目标操作系统是什么,以及您使用的操作系统版本(即 Android 5.x、iOS 8.x 或 9.x 等)
  • 现在,我已经在 ios 上安装了应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2018-02-11
  • 2017-08-06
  • 2021-12-27
相关资源
最近更新 更多