【问题标题】:Open local html with InAppbrowser使用 InAppbrowser 打开本地 html
【发布时间】:2013-08-07 00:52:53
【问题描述】:

我一直在寻找打开一个html本地级别的方法,本地我的意思是html在phonegap的应用程序的www文件夹里面,有inappbrowser

var about = window.open("About.html", "_blank", "location=yes");

这是我打算使用的代码行,但显然不起作用,如果有人可以帮助我,我将非常感激。

【问题讨论】:

    标签: ios cordova inappbrowser


    【解决方案1】:

    您使用的是 Phonegap 3.0.0 吗?我认为这是这个 Phonegap 版本的错误。

    我一直在使用它作为解决方法(打开一个 inappbrowser 实例):

    // Image zoom
    $('#container').on('tap', '#content.cmscontent img', function() {
        var browser = window.open((navigator.userAgent.indexOf('Android') != -1 ? 'file:///android_asset/www/' : '') + encodeURI($(this).attr('src')), '_blank', 'location=no,toolbar=yes,enableViewportScale=yes,transitionstyle=crossdissolve');
    });
    

    请参阅我在网址前添加了(navigator.userAgent.indexOf('Android') != -1 ? 'file:///android_asset/www/' : '') 作为前缀。现在它会检测您的应用何时在 Android 上,并在其前面添加本地 URL。

    【讨论】:

    • 感谢您的帖子,但目前我正在为ios平台开发项目,该项目很可能也会为android开发
    【解决方案2】:

    感谢您的回答,显然可以实现它的工作,问题是正在清理项目,因此没有添加 www about.html

    但现在我遇到了另一个问题,因为我已经看到假装显示应用程序的简介,其中显示 ios 版本和设备名称。为此,我使用了对象名称和版本设备的属性。出于某种我不知道但在索引文件中不可用的原因,我决定将这些属性传递给 html url,例如:

    var about = window.open("About.html?"+device.name+"&"+device.version, "_blank", "location=yes");
    

    而 about.html 使用以下方式处理这些变量:

    var cadGET = location.search.substr(1,location.search.length);
    

    但不显示 html inappbrowser 和位置栏只显示加载...

    知道inappbrowser是否支持传url参数?

    【讨论】:

      【解决方案3】:

      您编写的代码是正确的。它正在 inappbrowser 中打开页面。

      现在你必须确保在设备准备好后调用它。

      还要检查您使用的是 2.x 版本的 cordova 框架。如果您在使用 inappbrowser 时遇到问题,请提供更多信息。

      var app = {
          // Application Constructor
          initialize: function() {
              this.bindEvents();
          },
          // Bind Event Listeners
          //
          // Bind any events that are required on startup. Common events are:
          // 'load', 'deviceready', 'offline', and 'online'.
          bindEvents: function() {
                  document.addEventListener('deviceready', this.onDeviceReady, false);
          },
          // deviceready Event Handler
          //
          // The scope of 'this' is the event. In order to call the 'receivedEvent'
          // function, we must explicity call 'app.receivedEvent(...);'
          onDeviceReady: function() {
              app.receivedEvent('deviceready');
          },
          // Update DOM on a Received Event
          receivedEvent: function(id) {
              var about = window.open("about.html", "_blank", "location=yes");
              console.log('Received Event: ' + id);
          }
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-15
        • 2014-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-02
        • 2014-08-11
        相关资源
        最近更新 更多