cordova」タグアーカイブ

ionic のアップデートでエラー

ionic をアップデートしようと思い npm install -g ionic を実行すると

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
node.js:720
var cwd = process.cwd();

みたいなエラーが発生したので

npm install -g cordova ionic –unsafe-perm quickscrape

とすると問題なくアップデートできた。

参考→ http://forum.ionicframework.com/t/ionic-install-issue-osx/13850

Cordova で Xcode を 7.1 にアップデートしたら…

Cordova でアプリを開発しているのだが、Xcode を 7.1 にアップデートしたらビルドに失敗するようになった。
例えば “ file not found” とか MainViewController.xib に internal error とか。

調べた結果、Xcode で “Build Settings” > “Search Paths” > “Header Search Paths” にある
$(OBJROOT)/UninstalledProducts/include

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
に書き換えれば上手くいった。

追記。
MainViewController.xib の件は関係なかった。
これでは解消されていなかった。
ビルドできたりできなかったりで、よくわからない。
Xcode の不具合なのかな。

Cordovaでリンクをブラウザで開く

Cordova製のiOSアプリで、リンクタグによるリンク先のページを、アプリ内ではなく別にブラウザ(Safari)を立ち上げて開く方法。

cordova-plugin-inappbrowserプラグインを用いる方法が一般的なようだが、なぜかうまく扱えなかった。
そこで、http://koyoy-lab.blogspot.jp/2012/05/cordovasafari.htmlのページにあるように、MainViewController.mを書き換える方法で実現させた。

- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];
    if( [[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"])
    {
        [[UIApplication sharedApplication] openURL:url];
        return NO;
    }
    else
    {
        return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
    }
}

「httpもしくはhttpsで始まるリンクは、別途ブラウザを立ち上げて開く」という処理になる。
アプリ内のコンテンツとしてのページはfileで始まる(らしい)ので、これで外部リンクのみが別ブラウザで開くというわけだ。