javascriptのコールネイティブAPIののiOSのWebViewの使用

まず、関連するコードは、ジャバスクリプトに追加され

。$( 'コンテンツ.saveCode ')に(' touchstart'、関数(){ // touchstart 
        場合(TEMP == 0 ){ 
            ジャンプ(); 
        } 
        もし(TEMP == 1 ){android.savePic(画像。 SRC);} 
        
    })。

    関数ジャンプ(){ // IOSの
        VARの touchstart = 
        window.locationの = "/ touchstart"。     // 改变URL注意:要使用"/"分隔符
    } 

    関数 postStr(){ // IOSの
        戻りimage.src。
    }

 

2. iOSのは、ローカルコードに画像を保存します

// 当加载完网页取到IMAGEURL
- (ボイド)webViewDidFinishLoad:(のUIWebView * )のWebView { _urlString = [_myWebView stringByEvaluatingJavaScriptFromString:@ " postStr(); " ]。 NSLog(@ " %@の" 、_urlString)。 } //调用次序- shouldStart-> FinishLoad->回调ブロック函数
- (BOOL)のWebView:(のUIWebView *)のWebView shouldStartLoadWithRequest:(NSURLRequest * )要求navigationType:(UIWebViewNavigationType)navigationType { 場合([request.mainDocumentURL.relativePath isEqualToString。@ " / touchstart " ]){ UIImageFromURL([NSURL URLWithString:_urlString]、 ^(UIImage * 画像) { UIImageWriteToSavedPhotosAlbum(画像、自己、@selector(onSaveComplete:didFinishSavingWithError:contextInfo:)はnil); }、 ^(無効){ のNSLog("@ エラー!" ); }); 返す ; } を返す } 無効 UIImageFromURL(NSURL * URL、無効(^ imageBlock)(UIImage *画像)、無効(^ errorBlock)(ボイド)) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT、0)、^(ボイド { たNSData *データ= [[NSDataのALLOC] initWithContentsOfURL:URL]; UIImage *画像= [UIImage ALLOC] initWithData:データ]; dispatch_async(dispatch_get_main_queue( )、 ^(ボイド){ もし!(画像= NIL) { imageBlock(イメージ); } そう{ errorBlock()。 } })。 }); }

 

ます。https://www.cnblogs.com/davidgu/p/3951676.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34233856/article/details/93802955