Angularjs 在Ionic/Cordova中的应用浏览器HTML中回流并调整大小

Angularjs 在Ionic/Cordova中的应用浏览器HTML中回流并调整大小,angularjs,cordova,ionic-framework,ionic,inappbrowser,Angularjs,Cordova,Ionic Framework,Ionic,Inappbrowser,我正在用Ionic(使用Cordova)测试inAppBrowser插件,HTML在模拟器屏幕上显示得非常小。当我在emulator内的单独浏览器中测试相同的代码时,文本会更大、更清晰。以下是在inAppBrowser中打开站点的代码: var options = { location: 'yes', clearcache: 'yes', toolbar: 'no' }; $cordovaInAppBrowser.open("

我正在用Ionic(使用Cordova)测试inAppBrowser插件,HTML在模拟器屏幕上显示得非常小。当我在emulator内的单独浏览器中测试相同的代码时,文本会更大、更清晰。以下是在inAppBrowser中打开站点的代码:

    var options = {
        location: 'yes',
        clearcache: 'yes',
        toolbar: 'no'
      };

$cordovaInAppBrowser.open("http://www.sec.gov/Archives/edgar/data/1288776/000128877615000035/goog10-qq22015.htm", '_blank', options)
        .then(function(event) {
          // success
        })
        .catch(function(event) {
          // error
        });
如果我将
\u blank
更改为
\u system
,一个单独的浏览器将打开尺寸更适合屏幕的HTML页面。但我希望在iApp浏览器中看到大小类似的文本

如何使文本在inAppBrowser窗口中显示得更大?可能是视口元标记的等价物


谢谢。

您可以使用InApp浏览器的“insertCSS”功能将CSS添加到InApp浏览器的浏览器视图中,如文档所示

例如:

iab.insertCSS({ code: "p { background-color: #ff0000; color: #ffffff; }" });
然后添加要调整页面元素相对大小的CSS。

通过executeScript函数注入一个CSS似乎已经起作用(至少在我的测试页面上是这样)。文本更大、更清晰,并且文本的大部分适合屏幕的宽度

    var options = {
        location: 'yes',
        clearcache: 'yes',
        toolbar: 'no'
      };

      var script = 
      "var meta = document.createElement('meta');"+
      "meta.name = 'viewport';"+
      "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no';"+
      "document.getElementsByTagName('head')[0].appendChild(meta);";

      //$cordovaInAppBrowser.open(cordova.file.dataDirectory + "Documents/" + "sec.html", '_blank', options)
      $cordovaInAppBrowser.open("http://www.sec.gov/Archives/edgar/data/1288776/000128877615000035/goog10-qq22015.htm", '_self', options)
        .then(function(event) {
          // success
          $rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
            $cordovaInAppBrowser.executeScript({
              code: script
            });
          });
        })
        .catch(function(event) {
          // error
        });

您会注意到meta标记与您在Ionic/Cordova index.html页面上可能有的标记类似。但这似乎不是inAppBrowser继承的,所以我在页面加载后注入了它。

谢谢,但问题是您需要预先确定用户可能通过inAppBrowser访问的网站,并更改每个网站所有CSS元素的大小。我认为当你知道用户正在访问哪个网站,并且没有太多需要调整大小的元素时,你的方法效果最好。你也可以尝试一些元标记注入,正如你所建议的,我已经成功地使用了上述技术,当我退出到我知道变化不大的页面时(常见问题解答等).我会记住这一点,以防注入meta标签对我测试的其他网站不起作用。谢谢你的帮助。