1.调试遇到的一些问题
引用库后关于_OBJC_CLASS_$_文件referenced from:objc-class-ref in报错的测试总结
当出现该情况暂时测试出的结果可分成两种情况 当出现(ld: warning: ignoring file /Users/xxxx/Desktop/xxxx/xxxx.framework/xxxx, missing required architecture i386 in file /Users/xxxx/Desktop/xxxx/xxxx.framework/xxxx (2 slices))类似的错误的时候,接着的是一大串_OBJC_CLASS_$_文件referenced from:objc-class-ref in时,暂时测试出来的原因是因为该库只能用真机测试,模拟器上不能测试,至于真机上出现该错误时...
2.webview禁止长按事件
-(void)webViewDidFinishLoad:(UIWebView *)webView{
//下面的两句是禁止长按事件
[self.mainWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
[self.mainWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
}
3.webview与js的交互
//回调js的函数,其中JSON.stringify()这个函数传入nsstring对象转换成JS的字符串
delegate.audioCallBack=^(NSString*data){
NSString *str=[NSString stringWithFormat:@"var test = %@;JSON.stringify(test);getAudioURL(JSON.stringify(test));",data];
[self.mainWebView stringByEvaluatingJavaScriptFromString:str];
};
//截屏—>写入到相册里
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image= UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
下面的代码是js中在c++中得到的字符串,那么c++的字符串怎么转换成oc的呢,先转换成c的字符串,再转换成oc的字符串
//根据返回的字段解析字符串
map<string,string>::iterator appSysId = argsmap.find("appSysId");
map<string,string>::iterator cardNo = argsmap.find("cardNo");
map<string,string>::iterator cerType = argsmap.find("cerType");
map<string,string>::iterator cerNo = argsmap.find("cerNo");
map<string,string>::iterator cerName = argsmap.find("cerName");
map<string,string>::iterator cardMobile = argsmap.find("cardMobile");
map<string,string>::iterator secret = argsmap.find("secret");
//c++的 字符串转换成c的字符串
const char *c_appSysId = appSysId->second.c_str();
const char *c_cardNo = cardNo->second.c_str();
const char *c_cerType = cerType->second.c_str();
const char *c_cerNo = cerNo->second.c_str();
const char *c_cerName = cerName->second.c_str();
const char *c_cardMobile = cardMobile->second.c_str();
const char *c_secret = secret->second.c_str();
//c的字符串转换成oc的字符串
NSString *oc_appSysId =[NSString stringWithUTF8String:c_appSysId];
NSString *oc_cardNo =[NSString stringWithUTF8String:c_cardNo];
NSString *oc_cerType =[NSString stringWithUTF8String:c_cerType];
NSString *oc_cerNo =[NSString stringWithUTF8String:c_cerNo];
NSString *oc_cerName =[NSString stringWithUTF8String:c_cerName];
NSString *oc_cardMobile =[NSString stringWithUTF8String:c_cardMobile];
NSString *oc_secret =[NSString stringWithUTF8String:c_secret];