使用InAppbrowser打开本地html

时间:2013-08-07 00:52:53

标签: ios cordova inappbrowser

我一直在寻找打开html本地关卡的方法,Local我的意思是html位于phonegap应用程序的www文件夹中,inappbrowser

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

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

3 个答案:

答案 0 :(得分:0)

您使用的是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。

答案 1 :(得分:0)

感谢您的回答,并实现了它的工作显然问题是有清洁项目,因此没有添加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,位置栏仅显示loading ...

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

答案 2 :(得分:-1)

您编写的代码是正确的。它是在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);
    }
};