Cordova/Phonegap 3.3 中的外部链接/InAppBrowser 总是表现得像“_self”

Posted

技术标签:

【中文标题】Cordova/Phonegap 3.3 中的外部链接/InAppBrowser 总是表现得像“_self”【英文标题】:External links / InAppBrowser in Cordova / Phonegap 3.3 always behave like "_self" 【发布时间】:2013-12-19 18:28:57 【问题描述】:

我正在尝试在 Phonegap 应用程序中创建在“可关闭”InAppBrowser 中打开的链接,或者至少在外部 Safari 事件中打开,而不是在 Webview 本身中。

使用 _blank 或 _system 总是会导致“_self”行为(页面在 Web 视图中打开)。

我正在一个全新的 Phonegap 项目上尝试这个,目标是 iO。模拟器和设备上的相同问题。

InAppBrowser 已正确安装:

$ cordova plugins ls
[ 'org.apache.cordova.inappbrowser' ]

project.xml 没什么特别的:

<?xml version='1.0' encoding='utf-8'?>
<widget id="me.nerik.superpo" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>Test</name>
    <description>
        Hello World sample application that responds to the deviceready event.
    </description>
    <author email="support@phonegap.com" href="http://phonegap.com">
        PhoneGap Team
    </author>
    <feature name="http://api.phonegap.com/1.0/device" />
    <preference name="permissions" value="none" />
    <preference name="orientation" value="default" />
    <preference name="target-device" value="universal" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
    <preference name="prerendered-icon" value="true" />
    <preference name="stay-in-webview" value="false" />
    <preference name="ios-statusbarstyle" value="black-opaque" />
    <preference name="detect-data-types" value="true" />
    <preference name="exit-on-suspend" value="true" />
    <preference name="show-splash-screen-spinner" value="true" />
    <preference name="auto-hide-splash-screen" value="true" />
    <preference name="disable-cursor" value="false" />

    <icon src="icon.png" />
    <icon gap:platform="ios"  src="res/icon/ios/icon-57.png"  />
    <icon gap:platform="ios"  src="res/icon/ios/icon-72.png"  />
    <icon gap:platform="ios"  src="res/icon/ios/icon-57-2x.png"  />
    <icon gap:platform="ios"  src="res/icon/ios/icon-72-2x.png"  />
    <gap:splash gap:platform="ios"  src="res/screen/ios/screen-iphone-portrait.png"  />
    <gap:splash gap:platform="ios"  src="res/screen/ios/screen-iphone-portrait-2x.png"  />
    <gap:splash gap:platform="ios"  src="res/screen/ios/screen-ipad-portrait.png"  />
    <gap:splash gap:platform="ios"  src="res/screen/ios/screen-ipad-landscape.png"  />

    <access origin="*" />

    <feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
    </feature>

</widget>

这里是javascript

var app = 
// Application Constructor
initialize: function() 
     document.querySelector("h1").onclick = function()
    
        console.log("clicked !");
        // var ref = window.open( "http://google.com", '_blank', 'location=yes');
        var ref = window.open( "http://nerik.me", '_system');
    ;


;

【问题讨论】:

即使您可能已经找到了与您的应用程序初始化代码有关的解决方案,但您的错误听起来很像我报告的错误,即从 CLI 添加插件基本上无法生成正确的 cordova_plugins .js 文件。 issues.apache.org/jira/browse/… 【参考方案1】:

碰巧我没有等待“deviceready”触发。 在某些时候,我(愚蠢地)注释掉了等待事件启动应用程序的部分,因为“设备就绪”不再触发。 我不得不用cordova.js 替换phonegap.js。我不知道为什么:(

【讨论】:

您可以将自己的答案标记为“正确”,这样这个问题就不会再显示为打开了。

以上是关于Cordova/Phonegap 3.3 中的外部链接/InAppBrowser 总是表现得像“_self”的主要内容,如果未能解决你的问题,请参考以下文章

是否有使用适用于 iOS 的蓝牙经典的 Cordova/PhoneGap 插件?

桌面/移动标准网页中的phonegap / cordova社交共享插件

混合应用程序中的日历样式日期选择器(Cordova/Phonegap)

如何修复 Cordova/Phonegap 中的 iFrame 问题(iOS)?

如何从 ionic/cordova/phonegap 中的布局截取屏幕截图?

AngularJS 中的移动后退按钮与 Cordova/PhoneGap 不起作用