• 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 快三在线计划网站:PhoneGap 的 WP7 技巧: 编写 PhoneGap 插件用来发送短信

    来源:本网整理

    彩票双色球历史开奖结果 www.s9h6.com 在这篇文章红,将展示如何在 Windows Phone 上使用 PhoneGap 开发发送短信的应用,我们将通过 Microsoft.Phone.Tasks 命名空间中的 SMSCompose 来实现。PhoneGap 有实现对之进行封装的插件。

    PhoneGap 提供不少跨平台的 API 用于处理各个平台之间的差异,包括定位、存储、声音等等。而你的程序只需要使用 PhoneGa 提供的统一接口即可。但某些平台具有一些其他平台没有的特性时,你就需要利用 PhoneGap 的插件来进行处理。

    接下来我们将编写一个 PhoneGap 插件用来发送短信,首先我们看 C# 是怎么发送短信的:

    SmsComposeTask smsTask = new SmsComposeTask();
    smsTask.To = "4045551212";
    smsTask.Body = "Message from oschina.net, sir!";
    smsTask.Show();

    很简单直接是吧,需要注意的是这个发送短信是没有返回值的。接下来我们要提供一个 JavaScript 函数用来调用这个发送短信的方法,形如:

    sendSMS.send(‘4045551212’, ’Hello oschina.net’);

    整个过程需要两步走:首先,我们将上述的 C# 代码封装到一个类中的方法,在 PhoneGap 应用的项目结构图如下:

    image

    右键插件文件夹,选择 Add New Item. 选择 Class 并填写你希望的名字,这里我们使用的是 SendSMS.cs. 该类有大量附加的 using 语句我们并不需要,删除它们就是了。

    接下来我们需要修改命名空间,默认该命名空间就是我们的 Visual Studio 项目。但我们现在需要将该类做为 PhoneGap 运行库命名空间,因此将该类的命名空间修改为 WP7GapClassLib.PhoneGap.Commands. 另外我们还必须继承 PhoneGap 运行库的 BaseCommand 类,以便我们可以在 JavaScript 中调用到该类,只需要将类名后增加 : BaseCommand 即可。

    接下来,在SendSMS类中我们需要一个方法来处理短信发送的代码,我们创建一个 send 方法,因为需要使用 SmsCompose 任务,因此需要引入 using Microsoft.Phone.Tasks ,代码如下:

    using Microsoft.Phone.Tasks;
    
    namespace WP7GapClassLib.PhoneGap.Commands
    {
        public class SendSMS : BaseCommand
        {
            public void send(string args)
            {
                SmsComposeTask smsTask = new SmsComposeTask();
                smsTask.To = "(678) 555-1212”;
                smsTask.Body = "Hello oschina.net";
                smsTask.Show();
            }
        }
    }

    为了简单,接收者和短信内容我们写死了。

    下一步就是如何在 JavaScript 中调用到这个 send 方法,下面是 JavaScript 的代码:这是存放在项目中的一个 js 文件:

    function SMSComposer(){    
        this.resultCallback = null;
    }
    
    SMSComposer.prototype.showSMSComposer = function(toRecipients, body)
    {
        var args = {};    
    
        if(toRecipients)        
            args.toRecipients = toRecipients;    
    
        if(body)
            args.body = body;
    
        PhoneGap.exec(null, null, "SendSMS", "send", args);
    
    }
    
    PhoneGap.addConstructor(function () {
        if (!window.plugins) {
            window.plugins = {};
        }
        window.plugins.smsComposer = new SMSComposer();
      }
    );

    好了,现在可以忘记你的 C# 代码了。

    接下来我们只需要在页面中通过 <script> 标签引入刚定义的 js 文件,并调用如下方法:

    window.plugins.smsComposer.showSMSComposer(recipients, message)

    该方法接收一到多个号码和一个短信内容的参数。

    ss1

    最后我们还需要对 C# 代码进行处理让它接收这个 JSON 格式的 args 参数,因此需要使用 .NET 的反序列化库进行处理,下面是具体的代码:

    using Microsoft.Phone.Tasks;
    using System.Runtime.Serialization;
    
    namespace WP7GapClassLib.PhoneGap.Commands
    {
        public class sendSMSargs
        {
            [DataMember]
            public string toRecipients;
    
            [DataMember]
            public string body;
         }
    
        public class SendSMS : BaseCommand
        {
            public void send(string args)
            {
                sendSMSargs myargs = JSON.JsonHelper.Deserialize<sendSMSargs>(args);
               
                SmsComposeTask smsTask = new SmsComposeTask();
                smsTask.To = myargs.toRecipients;
                smsTask.Body = myargs.body;
                smsTask.Show();
                           
                this.DispatchCommandResult();
            }
        }
    }

    如果你需要在 Windows Phone 7 项目中使用该插件,你只需要一个 C# 类,并在 JavaScript 中调用 PhoneGap.exec 即可.

    本文译自:msdn

    不知道为什么我按照这个上面写的一点效果也出不来,能给我解答一下吗
    =======================其他用户的看法====================
    时间紧迫能尽快回复吗
    ===========================================
    求源码··邮箱:[email protected]
    ===========================================

  • 本文相关:
  • java的访问控制权限(public,private,protected,不写)
  • Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)
  • listView 异步更新完后,不能点击条目的问题
  • python异常处理
  • python __init__.py
  • Android中的几种网络请求方式详解
  • 百万级PHP网站架构工具箱
  • 一个绝对可靠的用户资料安全方法
  • 新的下载路径
  • Java 7: 理解 Phaser
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 大乐透尾数走势图 排列三组选中奖规则 2019雅阁 北京十一选五前三直走势图 体育彩票走势图大乐透走势图 新疆风采18选7走势图 时时彩二星胆码计划 欢乐斗地主春天 七星彩规律视频17132期 浙江十一选五组2 福彩3d开奖结果今天 4399斗地主 手机 十大门户网站游戏 不限ip多账号送彩金 360湖北快3遗漏数据