0

アプリケーションの.htmlファイルを検証するために.jsファイルを使用しています。プロジェクトに追加された.js&.htmlファイルですが、パッケージの内容に保存されていない.jsファイルには、.htmlファイルのみが含まれています。iosシミュレーター5.0を使用しています。 、

私の検証ソースは..

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSString *urlAddress        = [[NSBundle mainBundle] pathForResource:@"index" 
                                                                  ofType:@"html"]; //you can also use PDF files
    NSLog(@"%@",urlAddress);
    NSURL *url                  = [NSURL fileURLWithPath:urlAddress];
    NSURLRequest *requestObj    = [NSURLRequest requestWithURL:url];
    [web loadRequest:requestObj];
    web.backgroundColor=[UIColor redColor];
}

- (IBAction)markHighlightedString:(id)sender {

    // The JS File   
    NSString *filePath  = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""];
    NSData *fileData    = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString  = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
    [web stringByEvaluatingJavaScriptFromString:jsString];

    // The JS Function
    NSString *startSearch   = [NSString stringWithFormat:@"stylizeHighlightedString()"];
    [web stringByEvaluatingJavaScriptFromString:startSearch];

}

- (IBAction)getHighlightedString:(id)sender {


    // The JS File   
    NSString *filePath  = [[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js" inDirectory:@""];
    NSData *fileData    = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString  = [[NSMutableString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
    [web stringByEvaluatingJavaScriptFromString:jsString];

    // The JS Function
    NSString *startSearch   = [NSString stringWithFormat:@"getHighlightedString()"];
    [web stringByEvaluatingJavaScriptFromString:startSearch];

    NSString *selectedText   = [NSString stringWithFormat:@"selectedText"];
    NSString * highlightedString = [web stringByEvaluatingJavaScriptFromString:selectedText];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Highlighted String" 
                                                    message:highlightedString
                                                   delegate:nil 
                                          cancelButtonTitle:@"Oh Yeah" 
                                          otherButtonTitles:nil];
    [alert show];
    //[alert release]; // not required anymore because of ARC
}
- (IBAction)removeAllHighlights
{
    // calls the javascript function to remove html highlights
    [web stringByEvaluatingJavaScriptFromString:@"uiWebview_RemoveAllHighlights()"];
}

NSLog(@ "%@"、filePath);//HighlightedString.jsでnull値を取得しています

4

2 に答える 2

0

これら2つのオプションを試すことができます

1-プロジェクトナビゲーターでjsファイルをクリックし、必要なプロパティで、チェックボックスをオンにしてビルドに含める必要があります。この画像は、ステップ 1 と 4 のみを確認する前に作成したものです。

ここに画像の説明を入力

2- JavaScript を HTML ファイルに書き込んで関数内に配置し、この関数を呼び出して、テキストとしての読み込みを停止します。したがって、stringByEval.... JavaScript 関数のみを使用します。

于 2012-10-12T06:19:13.507 に答える
0

よくわかりませんが、そのファイルをターゲットの出力にコピーしていない可能性がありますか? または、実行中のアプリの古いバージョンを使用していますか? 簡単な修正は、Clean を実行してから Build and Run を実行することです。また、ファイルがターゲットに入るように設定されていない可能性があります。これは、[ターゲット] > [ビルド フェーズ] > [バンドル リソースのコピー] に移動して変更できます。これにより、そのファイルを追加できる領域が表示されます。

それに続いて、私は通常、アプリケーションの新しいバージョンを取得していることを確認するためだけに、Clean を実行してから Build を実行します。

添加

また、空の文字列を指定する代わりに、設定するinDirectory:メソッドの部分を設定してみてください。または、それを完全に取り除くこともできますfilePathnil[[NSBundle mainBundle] pathForResource:@"HighlightedString" ofType:@"js"]

于 2012-10-12T06:04:40.297 に答える