Phonegap Build - 在webview中打开外部链接

时间:2015-09-28 19:33:46

标签: cordova hyperlink webview phonegap-build inappbrowser

我使用

在我的应用中加载了一个网页
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>

2 个答案:

答案 0 :(得分:0)

@Atartica,
Based on your last response, I'd say you want to use the InAppBroswer.

First, this is based on using Phonegap Build, not Cordova. There is a difference.

Please note, for the most part, this will work as expected. BUT If you do NOT set the version to you compiler, you will get the latest version AND you will be required to use the white-list, the plugin, and the CSP.

Here are the details – Current Tripping Points to Cordova/Phonegap, See item 2. Not setting compiler version.

答案 1 :(得分:0)

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

  • #1您需要设置编译器的版本,否则将来会遇到类似的问题。
  • #2您需要了解有关Cordova / Phonegap的更多信息。此时,您正在黑暗中进行刺伤。 FWIW,我没有为此付出代价。这意味着,如果有人与你做错,那是因为你出现不听。

以下是您需要了解的信息 - 最好的运气,如果您需要,可以提出更多问题。

1。不支持iOS9 YET!

PhoneGap构建iOS 9支持状态

  • 2015年9月23日
  • http://community.phonegap.com/nitobi/topics/phonegap-build-ios-9-support-status
  • 第一线:iOS 9 NOT 正式支持Cordova-iOS 4.0.0,Cordova团队正在努力工作。但是,通过一些简单的配置更改可以解决一些问题。

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

    至于支持iOS9的时候,我的*个人*猜测很快就会出现。不超过30天。对此有很多抱怨。科尔多瓦队正在倾听。

2。未设置编译器版本

来自 Phonegap Build 论坛,Petra Adds

  

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

     

此外,几个插件似乎无法使用cli-5.2.0正确构建,导致日志文件错误消息关于&#34; Class ***。java&#34;。

FWIW: Phonegap Build admitted to as much in this tweet

来自Top Mistakes by Developers new to Cordova/Phonegap你已经点击了:

  • #6 未设置&#34; phonegap版本&#34;为您的编译器
  • #7 未设置&#34;版本&#34;为你插件
  • #10 不添加新的&#34;白名单&#34;和&#34;白名单插件&#34; config.xml中的参数。

对于#6&amp; #7

  

使用CLI版本,如果您没有为您的平台分配版本,或者在&#39;&#39; Phonegap Build&#39;&#39;如果你没有在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,那么必须添加 white-list 要求。< / p>      

要明确,&#34;白名单&#34;已经存在了一段时间,但插件和要求是非常新的。正如您所期望的那样,&#34;白名单&#34;添加了,defacto开放访问功能已被弃用。或者说另一种方式,事实上开放访问功能已被计划并计划被淘汰。此更改标志着删除开放访问功能的一个步骤。

     

此外,内容安全策略(CSP)已经吸引了众多开发人员 - 因为它的公开性很差。此CSP需要包含您使用的每个HTML页面,就像您必须等待“设备准备”一样。该文档隐藏在许多最新文档页面的底部。

相关链接

  

Phonegap Build Forum:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单