iOS的WebView中使用javascript调用原生的api
1. 首先在javascript中加入相关代码
$('.content .saveCode').on('touchstart', function () {//touchstart
if (temp == 0) {
jump();
}
if (temp == 1) { android.savePic(image.src); }
});
function jump() {//IOS
var touchstart = true;
window.location = "/touchstart"; //改变URL 注意:要使用"/"分隔符
}
function postStr() {//IOS
return image.src;
}
2. iOS保存图片到本地代码
// 当加载完网页取到imageurl
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
_urlString = [_myWebView stringByEvaluatingJavaScriptFromString:@"postStr();"];
NSLog(@"%@",_urlString); } // 调用次序 - shouldStart->FinishLoad->回调block函数
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ([request.mainDocumentURL.relativePath isEqualToString:@"/touchstart"]) {
UIImageFromURL( [NSURL URLWithString:_urlString], ^( UIImage * image )
{
UIImageWriteToSavedPhotosAlbum( image, self, @selector( onSaveComplete:didFinishSavingWithError:contextInfo: ), nil );
}, ^(void){
NSLog(@"error!");
}); return false;
}
return true;
} void UIImageFromURL( NSURL * URL, void (^imageBlock)(UIImage * image), void (^errorBlock)(void) )
{
dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^(void)
{
NSData * data = [[NSData alloc] initWithContentsOfURL:URL];
UIImage * image = [[UIImage alloc] initWithData:data];
dispatch_async( dispatch_get_main_queue(), ^(void){
if( image != nil )
{
imageBlock( image );
} else {
errorBlock();
}
});
});
}
iOS的WebView中使用javascript调用原生的api的更多相关文章
- Android WebView中的JavaScript代码使用
在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...
- UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv
原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) ...
- 在webView 中使用JS 调用 Android / IOS的函数 Function
最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView ...
- 【转】NativeScript的工作原理:用JavaScript调用原生API实现跨平台
原文:https://blog.csdn.net/qq_21298703/article/details/44982547 -------------------------------------- ...
- C#中可直接调用WIN32的API函数--USER32.DLL
Win32的API函数可以直接在C#中直接调用,在做WinForm时还是很有帮助的.有时候直接调用Win32的API,可以很高效的实现想要的效果. using System; using System ...
- UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)
UWP 中使用 WebView 时可以在网页中额外执行一些代码.于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情. 本文将介绍做法. 本文内容 准备环境 执行 JavaScript ...
- WebView 中重写javascript 常用函数
常规函数 javascript 常规函数包括以下3个函数: (1)alert函数:显示一个警告对话框,包括一个OK按钮. 对应:http://www.dreamdu.com/javascript ...
- Ionic4 Cordova 调用原生硬件 Api 实现扫码功能
QR Scanner 速度快,样式随心所欲,默认只能扫二维码 https://ionicframework.com/docs/native/qr-scanner/ 安装插件 ionic cordova ...
- 调用原生硬件 Api 实现照相机 拍照和相册选择 以及拍照上传
一.Flutter image_picker 实现相机拍照和相册选择 https://pub.dev/packages/image_picker 二.Flutter 上传图片到服务器 ht ...
随机推荐
- Eclipse插件安装的三种方法
转自:http://www.blogjava.net/tangzurui/archive/2008/06/30/211669.html 整理了一下格式. (前两种安装方式以多国语言包的安装为例) 1 ...
- C++将string转化成字符串数组
//str为需要截断的string,pattern为分隔符 std::vector<std::string> split(std::string str,std::string patte ...
- echo输出空行
rem 以下方法都可以输出空行,这十种方法分为三组,每组的效率依次递减 echo= echo, echo; echo+ echo/ echo[ echo] echo: echo. echo\
- Sunday算法(字符串查找、匹配)
字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore).两个算法在最坏情况下均具有线性的查找时间.但是在实用上,KMP算法并不比最简单的 ...
- AudioManager --- generateAudioSessionId
AudioManager中的generateAudioSessionId方法介绍: 1.方法声明 pubilc void generateAudioSessionId(); 2.API描述 返回一个不 ...
- 【24点游戏】cocos2dx 源码
1. 4个数字 24点判断 double Calc(double a, double b, string oper) { double result = 0; const char *p = ope ...
- dom 表格操作
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- ubuntu 14.04 root破解
Advanced Programmable interrupt controller 高级可编程中断控制;Advanced create table `users` (`id` int(11) not ...
- centos 安装redis php
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf redis-3.0.7.tar.gz $ cd redis- ...
- Kafka学习记录
1 Kafka的基本介绍 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.具有快速.可扩展.分布式.可复制等特点.Kafka与传 ...