电话号码格式化,手机端网页点击链接触发自动
分类:关于美高梅

通过网页拨打电话

手机端网页点击链接触发自动拨打或保存电话的示例代码,点击链示例代码

通过网页拨打电话

<a href=”tel://110 ”>拨打电话</a>

这种方式塞班、安卓与iphone都支持

切记一定这这么写,不要自己写方法再去调用

例如;<a href=”javascript:phone('+phone+') ”>拨打电话</a>

function phone(date){
window.location.href = 'tel://' + date;
}

这样写IOS不兼容

Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。

需求:

<a href=”tel://110 ”>拨打电话</a>

点击链接设为主页、收藏网页

你在要放置这两个“设为主页”“收藏网页”的地方 插入代码 如果你用Dreamweaver的话,当光标放好后 点击源码视图 插入以下代码:

1.用WebView来显示HTML代码

系统所有显示号码的地方,包括传真等其他电话字段都需要替换显示
1、座机号码如果是86 10 1234-5678 显示为010 1234-5678
2、座机号码如果是国外(美国)电话 842 10 1234-5678 则按照原格式显示:842 10 1234-5678
3、手机号码如果是国内,以86开头的话,依然只显示手机号码例如:132-1234-5678
4、如果手机号码前不是86,例如美国是842,则显示为:842 132-1234-5678
5、中间应加横线隔开(手机、座机都是)例如 132-1234-5678 010 1234-5678

这种方式塞班、安卓与iphone都支持

1.

<a onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('www.你的网址.com');"

2.允许WebView执行JavaScript

分析(ruby on rails层面):

切记一定这这么写,不要自己写方法再去调用

href="javascript:;">设为首页</a>

这个代码的意思是 当你单击后 触发js代码 弹出是否设为首页 .
确认窗口
2.这个也是,在你需要放置“加入收藏”的地方点下鼠标 然后切换到代码视窗

    webView.getSettings().setJavaScriptEnabled(true);

首先考虑显示号码的地方特别多,写个工具方法去一个个地方找出来调用一遍明显太麻烦了
应该直接从model层面去覆写调用电话的方法
再考虑到可能有多个model都会要去覆写(公司、联系人等),并且每个model可能有多个字段(mobile,telephone……)
进一步优化,可以写一个module去专门定义这些字段方法,然后在需要改动的model里引用一下就ok了
Never Repeat Yourself !

例如;<a href=”javascript:phone('+phone+') ”>拨打电话</a>

插入下面代码

<a

3.获取到HTML文件,也可从网络中获取

分析(正则表达式层面):

function phone(date){
window.location.href = 'tel://' + date;
}

href="javascript:window.external.AddFavorite('www.baidu.com','百度')">加入收藏</a>

这个代码我在dreamweaver用过 ,网址应该会改吧,里面的“百度” 就是你以什么名字收藏这个网页,以后可以再收藏夹中看到它
如果你不懂 还可以用下面这个方法:
在dreamweaver中 用搜狗输入法输入“加入收藏” ,

   webView.loadUrl("");   //HTML文件存放在assets文件夹中

首先处理 86+空格+区号+空格+号码 ,这里要删掉86然后给区号补个0
先判断 _p =~ /(^|s)86[s]+[1-9][0-9]{1,2}s/
解释: 以86开头或者86前面是空格,后面跟1个或者多个的空格,19任意数字,09重复1次或者两次,空格
替换:_p.gsub!(/(^|s)86[s]+/,'0')
手机号采用3-4-4分割:先取出所有手机号,再逐个替换加上分隔符
#以1开头或者空格后面接1,加上10位数字,结尾或者空格
_p.gsub(/(^|s)1[0-9]{10}($|s)/).to_a.each do |str|
#替换
t = str.strip_p.gsub!(t, "#{[0..2]}-#{[3..6]}-#{[7..10]}")
end
替换电话 正则表达式为 /(^|s)[1-9][0-9]{6,7}($|s)/ 也就是1~9后面跟6或者7个数字则判定为电话号码

这样写IOS不兼容

然后选中这几个字,在属性面板中的链接中 粘贴下面代码:

4.添加一个对象, 让JS可以访问该对象的方法, 该对象中也可以调用JS中的方法

以下为全部代码,仅供参考,欢迎指正

您可能感兴趣的文章:

  • jquery mobile实现拨打电话功能的几种方法
  • 编写android拨打电话apk应用实例代码
  • c#使用xamarin编写拨打电话程序

javascript:window.external.AddFavorite('www.baidu.com','百度')

然后回车 保存 预览下就可以  

   webView.addJavascriptInterface(new Contact(), "contact");

<pre><p>
class Firm < ActiveRecord::Base
include ReachLib::PhoneFormat
……
end
</p>

做一个找色命令在1024*768全屏软件中找四个点的颜色,当四个点的颜色满足条件时触发自动截图1024*768保存

给你个范例自己去改
autoit脚本源代码 ,你要 连续就去用 时间做文件名 自己去查 autoit帮会 时间 宏
#include <ScreenCapture.au3>
HotKeySet("!1", "Quit")
While True
$aColor = PixelGetColor(100, 100)
$bColor = PixelGetColor(100, 200)
$cColor = PixelGetColor(200, 100)
$dColor = PixelGetColor(200, 200)
if $aColor = 0xFFFFFF And $bColor = 0xFFFFFF And $cColor = 0xFFFFFF And $dColor = 0x000000 Then
_ScreenCapture_Capture(@ScriptDir & "GDIPlus_Image1.jpg")
EndIf
WEnd  

通过网页拨打电话 a href=”tel://110 ”拨打电话/a 这种方式塞班、...

 

module ReachLib
module PhoneFormat
# 需要格式化的字段
FIELDS = [:fax,:site_phone,:mobile,:telephone,:phone]

完整示例代码如下:

不足之处是FIELDS里的所有名称都会生成一遍方法,model会多出几个返回nil的方法

FIELDS.uniq.each do |m|
define_method(m){ ReachLib::PhoneFormat.format_phone self.read_attribute(m) }
end
def self.format_phone(phone)
_p = phone.to_s.strip
return nil if phone.blank? || _p.blank?
if _p =~ /(^|s)86[s]+[1-9][0-9]{1,2}s/
# 86开头+空格+区号+空格 86 10 123423 => 010 123423 86 512 123231 => 0512 123231
_p.gsub!(/(^|s)86[s]+/,'0')
else
# 去掉手机号以86开头的86 # 中间也有可能出现 ‘86 123213 or 86 12321123’这样的……
p.gsub!(/(^|s)86[s]+/,'')
end
# 手机号隔断
p.gsub(/(^|s)1[0-9]{10}($|s)/).to_a.each do |str|
t = str.strip
p.gsub!(t, "#{[0..2]}-#{[3..6]}-#{[7..10]}")
美高梅网址,end
# 电话
p.gsub(/(^|s)[1-9][0-9]{6,7}($|s)/).to_a.each do |str|
t = str.strip
p.gsub!(t, "#{[0..3]}-#{[4..-1]}")
end
_p
end
end
end

</pre>

效果图:
美高梅网址 1

MainActivity

美高梅网址 2

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends Activity {
    private WebView webView;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //加载页面
        webView = (WebView) findViewById(R.id.webView);
        //允许JavaScript执行
        webView.getSettings().setJavaScriptEnabled(true);
        //找到Html文件,也可以用网络上的文件
        webView.loadUrl("file:///android_asset/index.html");
        // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法
        webView.addJavascriptInterface(new Contact(), "contact");
    }

    private final class Contact {
        //JavaScript调用此方法拨打电话
        public void call(String phone) {
            startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)));
        }

        //Html调用此方法传递数据
        public void showcontacts() {
            String json = "[{"name":"zxx", "amount":"9999999", "phone":"18600012345"}]"; 
            // 调用JS中的方法
            webView.loadUrl("javascript:show('" + json + "')");
        }
    }
}

美高梅网址 3

HTML:

美高梅网址 4

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ";
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        <script type="text/javascript">
            function show(jsondata){            
                    var jsonobjs = eval(jsondata);
                    var table = document.getElementById("personTable");
                    for(var y=0; y<jsonobjs.length; y++){
                        var tr = table.insertRow(table.rows.length); 
                        var td1 = tr.insertCell(0);
                        var td2 = tr.insertCell(1);
                        td2.align = "center";
                        var td3 = tr.insertCell(2);
                        td3.align = "center";
                        td1.innerHTML = jsonobjs[y].name; 
                        td2.innerHTML = jsonobjs[y].amount; 
                        td3.innerHTML = "<a href='javascript:contact.call(""+ jsonobjs[y].phone+ "")'>"+ jsonobjs[y].phone+ "</a>"; 
                    }
            }
        </script>
    </head>
    <body onload="javascript:contact.showcontacts()">
       <table border="0" width="100%" id="personTable" cellspacing="0">
            <tr>
                <td width="30%">姓名</td>
                <td width="30%" align="center">存款</td>
                <td align="center">电话</td>
            </tr>
        </table>
    </body>
</html>

美高梅网址 5

拨打电话需要添加权限:

<uses-permission android:name="android.permission.CALL_PHONE" />

url:

 

程序员的网店:http://shop108042866.taobao.com呵呵 

凡事以大气象去面对,优秀是一种习惯。

 

摘自:

本文由美高梅网址发布于关于美高梅,转载请注明出处:电话号码格式化,手机端网页点击链接触发自动

上一篇:javascript实现附件下载,javascript实现附件下载示例 下一篇:js中使用replace方法完成某个字符的转换,HTMLDec
猜你喜欢
热门排行
精彩图文