第九章:特定于平台的API调用(二)

简介:

并行类和共享资产项目

虽然共享资产项目是平台项目的扩展,但这种关系是双向的:正如平台项目可以调用共享资产项目中的代码一样,SAP可以调用各个平台项目。
这意味着我们可以将特定于平台的API调用限制为各个平台项目中的类。 如果平台项目中这些类的名称和名称空间相同,那么SAP中的代码可以透明,独立于平台的方式访问这些类。
在PlatInfoSap2解决方案中,五个平台项目中的每一个都有一个名为PlatformInfo的类,它包含两个返回字符串对象的方法,名为GetModel和GetVersion。 这是iOS项目中此类的版本:

using System; 
using UIKit;
namespace PlatInfoSap2
{
    public class PlatformInfo
    {
        UIDevice device = new UIDevice();
        public string GetModel()
        {
            return device.Model.ToString();
        }
        public string GetVersion()
        {
            return String.Format("{0} {1}", device.SystemName, 
            device.SystemVersion);
        }
    }
} 

注意命名空间名称。 虽然此iOS项目中的其他类使用PlatInfoSap2.iOS命名空间,但此类的命名空间仅为PlatInfoSap2。 这允许SAP直接访问此类,而无需任何平台细节。
这是Android项目中的并行类。 相同的命名空间,相同的类名和相同的方法名,但使用Android API调用的这些方法的不同实现:

using System;
using Android.OS;
namespace PlatInfoSap2
{
    public class PlatformInfo
    {
        public string GetModel()
        {
            return String.Format("{0} {1}", Build.Manufacturer, 
 Build.Model);
        }
        public string GetVersion()
        {
            return Build.VERSION.Release.ToString();
        }
    }
}

这是三个Windows和Windows Phone项目中三个相同副本中存在的类:

using System;
using Windows.Security.ExchangeActiveSyncProvisioning; 
namespace PlatInfoSap2
{
    public class PlatformInfo
    {
        EasClientDeviceInformation devInfo = new EasClientDeviceInformation();
        public string GetModel()
        {
            return String.Format("{0} {1}", devInfo.SystemManufacturer, 
 devInfo.SystemProductName);
        }
        public string GetVersion()
        {
            return devInfo.OperatingSystem;
        }
    }
}

PlatInfoSap2项目中的XAML文件与PlatInfoSap1项目中的XAML文件基本相同。 代码隐藏文件相当简单:

using System;
using Xamarin.Forms;
namespace PlatInfoSap2
{
    public partial class PlatInfoSap2Page : ContentPage
    {
        public PlatInfoSap2Page ()
        {
            InitializeComponent ();
            PlatformInfo platformInfo = new PlatformInfo();
            modelLabel.Text = platformInfo.GetModel();
            versionLabel.Text = platformInfo.GetVersion();
        }
    }
}

该类引用的PlatformInfo的特定版本是已编译项目中的特定版本。 这几乎就像我们为Xamarin.Forms定义了一个小扩展,它存在于各个平台项目中。

目录
相关文章
|
7月前
|
机器学习/深度学习 人工智能 供应链
唯品会 API 赋能,唯品会平台母婴商品用户需求洞察
在电商竞争激烈的环境下,唯品会作为中国领先品牌折扣平台,母婴类目正快速增长。通过开放API赋能,平台实现对母婴用户需求的深度洞察,涵盖数据整合、智能分析与个性化推荐。本文解析API如何驱动需求预测、情感分析与用户细分,助力平台提升运营效率与用户满意度,展望未来结合AI技术的潜力。
183 2
|
7月前
|
数据采集 人工智能 监控
唯品会 API 助力,唯品会平台美妆商品营销效果评估
在电商竞争激烈的环境下,唯品会作为领先特卖平台,其美妆品类的营销效果评估至关重要。通过唯品会 API,商家可实时获取商品、销售及用户行为数据,精准计算 ROI、转化率等关键指标,实现数据驱动的营销优化。本文介绍 API 的应用方法,并结合案例说明如何提升营销效率与销售表现。
233 0
|
7月前
|
JSON 搜索推荐 API
唯品会 API 接口:唯品会平台促销活动订单转化率提升
在电商中,促销活动是提升销量的重要手段。唯品会作为领先的品牌折扣平台,通过限时抢购、优惠券等方式吸引用户,但如何提升订单转化率仍是关键挑战。本文分析了用户决策延迟、信息不对称、个性化不足等问题,并介绍如何利用唯品会 API 接口实现数据驱动优化。通过实时数据同步、个性化推荐和自动化处理,API 可帮助开发者提升转化率,案例显示优化后转化率平均提升 20%-30%。同时,自动化流程降低了运营成本,增强了用户体验。集成唯品会 API,是实现高效促销、提升用户粘性的重要路径。
263 3
|
7月前
|
人工智能 监控 小程序
【快递鸟】选择对接你的物流商城/小程序的物流API平台
在电商竞争日益激烈的今天,物流体验已成为影响用户留存和复购的关键因素。一个高效、透明、稳定的物流系统,对于物流商城或小程序来说至关重要。然而,自建物流查询系统需要对接众多快递公司,开发周期长、维护成本高、数据整合困难。
376 0
|
7月前
|
数据采集 搜索推荐 API
苏宁易购 API 接口:苏宁易购平台促销活动用户参与度分析
本文探讨如何利用苏宁易购API接口进行促销活动中的用户参与度分析。通过API获取数据,定义关键指标如点击率、转化率及参与度指数,并结合统计分析与回归模型揭示用户行为模式。以“618大促”为例,展示数据驱动的优化策略及其成效,提升用户粘性与销售转化。
192 0
|
7月前
|
人工智能 供应链 算法
苏宁易购 API 赋能,苏宁易购平台生鲜商品配送时效提升
在电商竞争激烈的当下,苏宁易购通过API技术提升生鲜配送效率,实现库存、物流与用户的智能协同,优化供应链管理,缩短配送时间,提高用户满意度,为未来技术融合奠定基础。
215 0
|
8月前
|
供应链 搜索推荐 API
苏宁易购 API 助力,苏宁易购平台 3C 产品销售策略优化
在电商竞争激烈的环境下,苏宁易购通过API优化3C产品销售策略,实现数据驱动决策、个性化推荐与智能库存管理,提升销售额与运营效率,增强用户体验,巩固市场竞争力。
215 0
|
弹性计算 Java API
API经济最主要是学会调用API
众所周知,阿里云提供了全方位、多层次的云计算产品体系。阿里巴巴技术委员会主席王坚博士说过,要让云计算像水电一样方便获得。为了开发者无缝衔接阿里云的众多服务,将它们集成到自己的应用系统,阿里云开放了API和用来访问API的工具SDK。
2566 0
|
6月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南