僕が作ったサービス

clanworkz

2014年4月10日木曜日

Uncaught TypeError: Object [object Object] has no method '〜'エラー

久しぶりにやったらwebviewからjsの関数の戻り値を取れなくて、
表題のエラーがでてくる。ずっとごにょごにょやってたんだけど、ググったら一発でしたわ。あれこれ悩むよりまえにググったほうがええな。

stackoverflowにいっぱい記事があった。


sdkのターゲットが17以上の場合は@JavascriptInterfaceアノテーションをつけないとだめらしい。きちんと別ファイルにJavascriptInterface用のクラス作成して、アノテーションを付けて、メソッドはパブリックに指定してやる。
それでいけました。

import android.webkit.JavascriptInterface;

public class CustomJavascriptInterface {
@JavascriptInterface
public void getReturnString(String returnValue) {
Log.d("jsの戻り値 => ", returnValue);
}
}

2014年4月8日火曜日

webアプリを作っている時に、
uinavigation contrllerの中にwebview突っ込んで、
もどるボタンでwebviewのもどるを実装したいとき多々あります。

もどるボタンをキャッチする方法、いろいろあるみたいだけど、
http://stackoverflow.com/questions/5217992/back-button-callback-in-navigationcontroller-in-ios


ベーシックなやり方がなんだかんだ安心するわ

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"戻る"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:@selector(handleBack:)];
    
    self.navigationItem.leftBarButtonItem = backButton;
    _webview.delegate = self;
    NSURL *url = [NSURL URLWithString:_url];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [_webview loadRequest:req];
}

- (void) handleBack:(id)sender
{
    if([_webview canGoBack]){
        [_webview goBack];
    }else{
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}



storyboard 接続できない

xcodeでiOSの開発をしていて、storyboardでボタンから次のviewcontrollerに紐付け付ができなくなりました。

ctrlキー+ドラッグでビョーンと伸ばしても、ひも付きがなされない。

=>xcode再起動でなおりました。