【问题标题】:Cordova InAppBrowser not zoomingCordova InAppBrowser 不缩放
【发布时间】:2014-10-24 17:33:54
【问题描述】:

我在使用 Cordova 的 InAppBrowser 插件时遇到问题,我似乎无法激活缩放。

我已将 InAppBrowser 插件添加到我的应用程序中,我这样称呼它..

HTML:注意 - 我尝试更改/删除元标记,但没有任何区别

<head>
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    <link rel="stylesheet" type="text/css" href="css/snap.css">
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
</head>

JavaScript:

/**
 * Global window.open
 * InAppBrowser Plugin
 * http://cordova.apache.org/docs/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html
 */

var iabRef = null;

function iabLoadStart(event) {
    spinner.spin(target);
}

function iabLoadStop(event) {
    spinner.stop();
}

function iabLoadError(event) {
    // alert(event.type + ' - ' + event.message);
}

function iabClose(event) {
     iabRef.removeEventListener('loadstart', iabLoadStart);
     iabRef.removeEventListener('loadstop', iabLoadStop);
     iabRef.removeEventListener('loaderror', iabLoadError);
     iabRef.removeEventListener('exit', iabClose);
}

function loadExternalUrl(url) {
    iabRef = window.open(url, '_blank', 'location=yes,EnableViewPortScale=yes');
    iabRef.addEventListener('loadstart', iabLoadStart);
    iabRef.addEventListener('loadstop', iabLoadStop);
    iabRef.removeEventListener('loaderror', iabLoadError);
    iabRef.addEventListener('exit', iabClose);
    return false;
}

HTML:

<a onclick="loadExternalUrl('http://www.someurl.co.uk')">url</a>

它可以很好地加载网页,问题是它放大得令人难以置信,我无法控制捏合或缩放。我已经阅读了几篇文章,但似乎无法让它发挥作用。

Cordova 版本:

cordova -v => 4.0.0
cordova plugin list => org.apache.cordova.inappbrowser 0.5.4-dev "InAppBrowser"
cordova platform version android => android 3.6.4

Manifest.xml

<feature name="InAppBrowser">
    <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>

如果有人能解释为什么我不能缩放,我将非常感激!

提前致谢!

【问题讨论】:

  • 说“激活缩放”是指捏缩放。您可以尝试删除viewport 元标记吗?

标签: cordova window.open cordova-plugins inappbrowser


【解决方案1】:

我建议改变

iabRef = window.open(url, '_blank', 'location=yes,EnableViewPortScale=yes');

iabRef = window.open(url, '_blank', 'location=yes,enableviewportscale=yes');

您可能还想将其添加到您的项目 config.xml 中(尽管它可能是 iOS specific thing):

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

【讨论】:

  • 我试过这个,但结果是我的插件有问题。不过谢谢
【解决方案2】:

我终于找到了解决方案,所以我想我会分享。

事实证明,我正在编辑一个旧的索引文件,因此任何更改都不会生效。一旦我意识到这一点,我注意到我包含了cordova.js 两次,一次在头部,一次在身体下方,这导致发生以下错误

module org.apache.inappbrowser does not exist

我删除了这个,但仍然无法让插件工作,我使用 CLI 添加和删除了几次插件,但仍然没有任何乐趣。

经过数小时的挖掘,我意识到我在几个不同的目录中有旧的冗余插件代码,我从以下目录中删除了所有插件以及 android.json 文件:

[my_project]/plugins
[my_project]/platforms/android/src/org/apache/cordova/inappbrowser
[my_project]/platforms/android/cordova/plugins/
[my_project]/platforms/android/assets/www/plugins

删除所有这些后,我添加了插件

cordova plugin add org.apache.cordova.inappbrowser

这似乎已经为我解决了所有问题,所以希望它可以帮助其他人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多