我有一个UITableView,在委托(视图控制器)中,我实现了该功能
tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
Run Code Online (Sandbox Code Playgroud)
然后我测试编辑风格
if editingStyle == UITableViewCellEditingStyle.Delete {
// do deleting stuff here
}
Run Code Online (Sandbox Code Playgroud)
作为删除的一部分,我要求用户确认,如果他们选择"是",则与该行相关的项目将被删除,如果他们选择否,则重置编辑样式.
var alert = UIAlertController(title: "Delete Item", message: "Are you sure you want to delete the selected item?", preferredStyle: UIAlertControllerStyle.Alert)
//delete
alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Destructive, handler: { (action: UIAlertAction!) -> Void in
println("Yes action was selected")
//delete my object and remove from the table
}))
//cancel
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: { (action: UIAlertAction!) -> Void in
//reset editing …Run Code Online (Sandbox Code Playgroud) 这不是世界末日,但如果有的话那就太好了。
目前正在使用Ionic 2构建混合应用程序,并且我正在向服务器 API 发送请求。
我想让用户代理字符串报告应用程序和版本(以及平台),例如MyApp V1.0 (iOS)。
目前我正在发送如下请求:
http.post(my_server_url, JSON.stringify(dataToSend), options)
Run Code Online (Sandbox Code Playgroud)
选项对象的构造如下:
let options = {
headers: myHeaders
};
Run Code Online (Sandbox Code Playgroud)
标头构造为:
let myHeaders = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('User-Agent', 'MyApp V1.0 (iOS)');
Run Code Online (Sandbox Code Playgroud)
用户代理是使用特定于平台的数据构建的,上面只是用于此问题的直接字符串。
请求按预期工作,服务器接收数据并进行相应操作。服务器发送适当的请求并得到正确的处理。但是,当我检查实际发送的标头时,用户代理不是我设置的。
例如,在 iPhone 上,我看到以下用户代理(均通过 Safari 开发人员工具以及服务器日志进行检查):
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko)
Run Code Online (Sandbox Code Playgroud)
这是基于正在使用的包装网络视图。因此,我猜测存在某种机制阻止我覆盖用户代理。
作为同一个应用程序的一部分,我正在上传文件并使用cordova 文件传输插件。我设置了该传输的标头(不使用 Angular http),并且用户代理在服务器日志中正确报告。
因此,正如问题所述,有没有办法使用 Angular http 设置自定义 User-Agent 标头?