我在使用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>
如果有人能说清楚我为什么不能放大,那么我会非常感激!
提前致谢!
答案 0 :(得分:3)
我建议改变
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"/>
答案 1 :(得分:1)
我终于找到了解决方案,所以我想我会分享。
首先,我发现我正在编辑旧的索引文件,因此任何更改都没有生效。一旦我意识到这一点,我注意到我包括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
这似乎已经为我修好了一切,所以希望它能帮助别人!