IOS之WebViewJavascriptBridge补充

上篇讲到ios中页面使用WebViewJavascriptBridge交互数据,只提供一个页面上一个按钮,如果是个列表页有多个按钮都要交互数据呢?写法要改一下:

首先要初始化

var bridge;
document.addEventListener(‘WebViewJavascriptBridgeReady’, onBridgeReady, false)
function onBridgeReady(event) {
bridge = event.bridge

bridge.init(function(message, responseCallback) {
var data = { ‘Javascript Responds’:’Wee!’ }
responseCallback(data)
})

bridge.registerHandler(‘testJavascriptHandler’, function(data, responseCallback) {
var responseData = { ‘Javascript Says’:’Right back atcha!’ }
responseCallback(responseData)
})

}

然后在每个按钮后绑定事件

<a id=”a_1″>touch1</a>
var obj = document.getElementById(‘a_1’);
obj.ontouchstart = function(e) {
e.preventDefault()
bridge.send(‘data’, function(responseData) {

})
}
<a id=”a_2″>touch2</a>
var obj = document.getElementById(‘a_2’);
obj.ontouchstart = function(e) {
e.preventDefault()
bridge.send(‘data’, function(responseData) {

})
}

monit监控软件安装配置

monit很不错的监控软件,下载安装如下:

wget http://mmonit.com/monit/dist/monit-5.1.1.tar.gz

#最新的版本可能不是这个
tar xzvf monit-5.1.1.tar.gz
cd monit-5.1.1
./configure
make
make install

配置的时候如果报缺少依赖包,按照提示yum就是了。

关键是配置,安装目录下有配置文件monitrc,建议拷贝到etc目录下

cp monitrc /etc/monitrc

编辑配置文件

vi /etc/monitrc

set httpd port 2812 and # 默认端口2812
use address localhost # 改成服务器ip,用域名也可以
allow localhost # 允许本机访问
allow 10.10.10.10 # 这里是关键,这个ip是客户端ip,和第二行的ip不同,设置这个ip才能从远程访问
allow admin:mima
allow @monit
allow @users readonly

其他要监控的项目,自己开启起来就好了,给个监控nginx的配置

check process nginx with pidfile //usr/local/webserver/nginx/nginx.pid
start program = “//usr/local/webserver/nginx/sbin/nginx” with timeout 60 seconds

最后是启动monit命令:/usr/local/bin/monit -c /etc/monitrc

开启一系列慢日志,php-fpm和mysql

有台服务器最近连续假死,暂未找到原因,只好开启nginx访问日志和php-fpm、mysql慢日志。

nginx访问日志就不讲了,设置一下日志文件目录就可以了。

php-fpm慢脚本日志:

request_slowlog_timeout,慢日志时间,秒为单位,默认是关闭的,建议填30

slowlog,日志文件,默认也是关闭的

mysql慢sql日志:

long_query_time,慢sql时间,也是秒为单位,看你需求了,1-2秒都是可以考虑的

log-slow-queries,日志文件

nginx+php-fpm上传文件的大小限制

主要配置在php.ini里

file_uploads,默认应该是开启的,如果是off肯定是不能传了。

upload_max_filesize和post_max_size都是限制上传文件大小的。修改成适当的大小

还有一个很关键的配置,一般人我不告诉他,nginx.conf里还有个配置项client_max_body_size,这个很关键,如果文件大于这个配置,根本就到不了php那边。

ios之WebViewJavascriptBridge页面端代码

ios中,页面和应用数据交互,可以用WebViewJavascriptBridge完成,范例和文档请见:https://github.com/marcuswestin/WebViewJavascriptBridge

下面给出页面端的代码供参考:

<script>
window.onerror = function(err) {

}
document.addEventListener(‘WebViewJavascriptBridgeReady’, onBridgeReady, false)
function onBridgeReady(event) {
var bridge = event.bridge

bridge.init(function(message, responseCallback) {
var data = { ‘Javascript Responds’:’Wee!’ }
responseCallback(data)
})

bridge.registerHandler(‘testJavascriptHandler’, function(data, responseCallback) {
var responseData = { ‘Javascript Says’:’Right back atcha!’ }
responseCallback(responseData)
})

var button = document.getElementById(‘setupbt’)
button.ontouchstart = function(e) {
e.preventDefault()
var data = ‘json_data’;//这里就是要交互的数据,建议用json数据
bridge.send(data, function(responseData) {
// 发送消息到应用端。
})
}
}

</script>