ios phonegap Child Browser插件设置

时间:2013-04-30 15:40:42

标签: html ios xcode cordova

所以我在Xcode中为我的phonegap应用程序设置了Child Browser插件,并且遇到了一些问题。首先,为了确保在Xcode中正确构造它,我的插件文件夹中包含所有本机文件,并且ChildBrowser.bundle包含图标。
现在对于html方面,我的头文件中有cordova.jschildbrowser.js个文件,后面跟着这个<

 <script type="text/javascript">
    function onDeviceReady() {

        var root = this;
        cb = window.plugins.childBrowser;

        if(cb != null) {
        cb.onLocationChange = function(loc){ root.locChanged(loc); };
        cb.onClose = function(){root.onCloseBrowser(); };
        cb.onOpenExternal = function(){root.onOpenExternal(); }
        }
    }

    function onCloseBrowser() {
        console.log("onCloseBrowser!");
    }

    function locChanged(loc) {
        console.log("locChanged!");
    }

    function onOpenExternal() {
        alert("onOpenExternal!");
    }

</script>

然后,对于我的<a>标记,我使用了github示例中使用的onClick事件Here

<a onclick="childBrowser.showWebPage('http://google.com');" href="#">Test</a>

但是当我在模拟器中尝试它时,没有真正发生任何事情,并且consol日志甚至没有显示任何活动。我是这样做的还是什么?任何帮助表示赞赏。我正在使用phonegap 2.6.0

3 个答案:

答案 0 :(得分:4)

这将有助于您添加子浏览器。

https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser

以及Installing Cordova Plugins with Phonegap - no Cordova.plist

我通过链接上方成功整合了它,下面是步骤。

1)复制“ChildBrowser”中的所有文件,并将其粘贴到PhoneGap 2.6.0 Project的“Plugin”文件夹中。

2)从“插件”添加框架,如下图所示。

enter image description here

3)将“ClildBrowser.js”包含在“www / index.html”

4)从Xcode中,将文件添加到“插件”文件夹中。

5)遵循https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser

中提到的代码

6)享受。

答案 1 :(得分:2)

更新:如果您使用Phongap 2.0或更高版本,则不需要外部插件。 Phonegape 2.0及以上版本附带InAppBrowser,它是ChildBrowser但非常有效且省时,你不需要经历所有这些痛苦的过程。设置InAppBrowser

步骤进行:

1- config.xml添加:

<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

2-创建函数并在“OnDeviceReady()内部或”

之后加载phonegap时调用该函数
function externalWeb(url) {
    console.log("Initializing InAppBrowswer");

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

    ref.addEventListener('loadstart', function(event) {
        console.log("start loading external link  :" + event.url);
    });

    ref.addEventListener('loadstop', function(event) {
        console.log("External link lodaded without any problem  : " + event.url);
    });

    ref.addEventListener('loaderror', function(event) {
        console.log("There is error in loading External link :" + event.url);
        alert('error: ' + event.message);
    });

    ref.addEventListener('exit', function(event) {
        console.log("External link is closed now :" + event.type + "link :" + event.url);
    });
}

3-现在打开链接调用上面的函数,URL为字符串

var targetURL="http://www.google.co.uk";
externalWeb(targetURL);

有关详细信息,请访问InAppBrowser

链接

答案 2 :(得分:0)

<feature name="ChildBrowserCommand">
    <param name="ios-package" value="ChildBrowserCommand" />
</feature>

请记住获取最新的插件代码,因为phonegap已经改变了参数传递给本机.m文件的方式 例如:

- (void)showWebPage:(CDVInvokedUrlCommand*)command 

和.h文件

@property (nonatomic, strong) ChildBrowserViewController* childBrowser;

-(void)showWebPage:(CDVInvokedUrlCommand*)command;