1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Objective-CからHTML情報を書き換える

Posted at

はじめに

少し前にJavaScriptからiOSアプリにフックするやつを書いたのですが、
そのあとにObjective-CからHTMLを書き換えるというようなことがあった(現在進行形)ので

ソースコード

ViewController.m
# import "ViewController.h"

@interface ViewController () <UIWebViewDelegate>

@property (weak, nonatomic) IBOutlet UIWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _webView.delegate = self;
    NSURL *url = [NSURL URLWithString:@"https://nnsnodnb.moe/js-bridge/jshook.html"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:request];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *javaScript = @"document.getElementById('hoge').value = 'ご飯炊けたよぉぉぉぉ!!!!';";
    [_webView stringByEvaluatingJavaScriptFromString:javaScript];
}

@end

今回も私の自宅サーバさんが役に立ってくれそうです。久しぶりにATS問題に引っかかり Info.plist を書き換えるすら面倒になってしまったのでサーバにちょちょいとアップロードしました。

もしテストしてみたいとかあればどうぞ使ってください(?)
ちなみに当サイトでは、jQueryを載せているのですが以下の様なJavaScript操作はできませんでした。

できなかったScript
$('#hoge').attr('value', 'ご飯炊けたよぉぉぉぉ!!!!');

スクリーンショット

ブラウザで開く

スクリーンショット 2016-08-10 午後5.16.08.png

JavaScript操作を行う

スクリーンショット 2016-08-10 午後5.17.57.png

スクリーンショットを撮ったあとに inputタグdisabled属性 をつけてみました。

jshook.html
<input type="text" id="hoge" value="hogehogehoge" disabled>

やってみたいからこんなの追加してくれ!とかあったらコメントでオナシャス

部長様の記事

[WebViewシリーズ①] WebViewのイベントをフックする
[WebViewシリーズ②] WebView内でJavaScriptのメソッドを操作する
[WebViewシリーズ③] WebViewは、ページ内のアンカーへリンクできない??
[WebViewシリーズ④] WebView(アプリ内)のリンクからiTunesが表示できない

前回のゆるふわ

ゆるふわにUIWebViewでJavaScriptイベントをひろってみる

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?