Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项

一、设备类是Xamarin重要开发组成部分,下面介绍一下设备类的主要用法:

//唤醒打电话
Device.OpenUri(new Uri("tel:180xxxxxxxx"));

//打开网页
Device.OpenUri(new Uri("http://vipstone.cnblogs.com/"));

//判断当前运行平台
Device.RuntimePlatform => Device.iOS, Device.Android, Device.WinPhone

//设备类型平板、手机、桌面
Device.Idiom => TargetIdiom.Phone, TargetIdiom.Tablet, TargetIdiom.Desktop

//计数器延迟执行
Device.StartTimer (new TimeSpan (0, 0, 60), () => {
  // do something every 60 seconds
  return true; // runs again, or false to stop
});

更多Device相关信息请访问:https://developer.xamarin.com/guides/xamarin-forms/platform-features/device/

二、第三方弹窗,模态窗口

先看效果图:

模态窗口git地址:https://github.com/rotorgames/Rg.Plugins.Popup

基本实现核心代码:

<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ywgoapp.Pages.Upgrade.UpgradePrompt"
             xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup">
    <StackLayout VerticalOptions="Center" WidthRequest="290" HorizontalOptions="Center" Spacing="0">
        <AbsoluteLayout VerticalOptions="Start">
            <Image Source="upgrade_bgtop.png" WidthRequest="290" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0,0"></Image>
            <Label x:Name="lb_version" Text="版本升级" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds="0.5,74" FontSize="16" TextColor="White"></Label>
            <Image x:Name="img_close" IsVisible="False" Source="close3.png" HeightRequest="24" WidthRequest="24" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds=".96,52">
                <Image.GestureRecognizers>
                    <TapGestureRecognizer Tapped="OnCloseTap"></TapGestureRecognizer>
                </Image.GestureRecognizers>
            </Image>
        </AbsoluteLayout>
        <ScrollView Padding="30,20" MinimumHeightRequest="160" BackgroundColor="White">
            <Label x:Name="lb_content" Text="" FontSize="12"></Label>
        </ScrollView>
        <StackLayout Padding="50,0,50,10" BackgroundColor="White">
            <Button Text="立即升级" BackgroundColor="#4BC1D2" TextColor="White" Clicked="Button_Clicked">
            </Button>
        </StackLayout>
        <StackLayout Spacing="0">
            <Image Source="upgrade_bgbottom.png" WidthRequest="290" Aspect="AspectFill"></Image>
        </StackLayout>
    </StackLayout>
</pages:PopupPage>

调用代码:

this.Navigation.PushPopupAsync(new UpgradePrompt());

弹窗要注意的点:

1.不想点击任何区域都消失的话,需要重新OnBackgroundClicked事件:return false;

2.手动关闭窗体:PopupNavigation.PopAsync();

时间: 2024-10-29 10:45:45

Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项的相关文章

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式的汉堡菜单,我曾在"张高兴的 UWP 开发笔记:汉堡菜单进阶"里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色的矩形用来表示 ListView 的选中.如下图 但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢? 一.大纲-细节模式简介 讲代码前首先来说说这种导航模式,官方称"大纲-细节模式"(MasterDetail).左侧的汉堡菜单称为&qu

IOS开发笔记-百度地图(第三方库)

最近做了百度地图,在导入SDK后遇到了一些问题 编译错误: linker command failed with exit code 1 (use -v to see invocation) 想了很多办法,查了很多资料,最后终于解决. 可能原因: 1. 有重复的.m文件,或者未导入 解决办法:有重复的删除即可 在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面 2.Valid Architectures 的值 在

ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

原文  http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要: 前言及鸣谢: 感谢guog先生,快活林高先生,onvif全国交流群的的酷夏先生在开发过程中给予的巨大支持,没有你们的帮助开发过程将异常艰难啊.谢谢了! ONVIF介绍: ONVIF致力于通过全球性的开放接口标准来推进 网络视频 在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性.2008年11月,论坛正式发布了ONVIF第一版规范——ONVI

ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)

概要: 前言及鸣谢: 感谢guog先生.快活林高先生,onvif全国交流群的的酷夏先生在开发过程中给予的巨大支持,没有你们的帮助开发过程将异常艰难啊.谢谢了! ONVIF介绍: ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性.2008年11月.论坛正式公布了ONVIF第一版规范--ONVIF核心规范1.0.随着视频监控的网络化应用,产业链的分工将越来越细. 有些厂商专门做摄像头.有些厂商专门做DVS.有些厂商则可能专

【转】Android开发笔记(序)写在前面的目录

原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入门上:其次是想拾缺补漏,写写虽然小众却又用得着的东西:另外就是想以实用为主,不求大而全,但求小而精:还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来.个人的经

Android开发笔记(一百一十三)测试工具

单元测试TestCase Android的sdk提供了对项目进行单元测试的功能,开发包的android.test下面便是专门用来单元测试的类.单元测试的作用是通过模拟文本输入和手势输入(如点击操作),从而让app自动执行一系列的操作,这样就能够检查程序是否运行正常. 下面是搭建测试工程的具体步骤: 1.首先当然你得有一个待测试的app工程,最简单的如带有一个编辑框的Hello World工程: 2.其次在ADT中创建测试工程,操作步骤为依次选择菜单"File"--"New&q

Android开发笔记(一百一十一)聊天室中的Socket通信

Socket通信 基本概念 对于程序开发来说,网络通信的基础就是Socket,但因为是基础,所以用起来不容易,今天我们就来谈谈Socket通信.计算机网络有个大名鼎鼎的TCP/IP协议,普通用户在电脑上设置本地连接的ip时,便经常看到下图的弹窗,注意红框部分已经很好地描述了TCP/IP协议的作用. TCP/IP是个协议组,它分为三个层次:网络层.传输层和应用层: 网络层包括:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 传输层包括:TCP协议.UDP协议. 应用层包括:HT

[置顶] Android开发笔记(成长轨迹)

分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API 调用了未实现的OpenGL ES API函数,一般由于导入的第三方库如地图库,里面有用到OpenGL,但是模拟器的硬件默认是没有这个的,所以需要我们编辑模拟器Emulation Options选项勾选 Use Host GPU 然后重启模拟器再尝试,如果还是这个错误,那么我们只好用真机测试了. 2.

移动web开发笔记

移动web开发笔记 移动web开发笔记 基础概念 像素单位 CSS pixels与device pixels CSS pixels PPIDPI devicePiexelRatio 文字大小控制 viewport 响应式布局 原则 实现方式 布局方案 百分比布局流体布局 弹性flexible布局 flex-box布局 图片处理 普通设置 响应式图片 媒体查询 HTML5 新表单类型 HTML5的新输入类型 CSS3 设备控制 设备交互 性能优化 参考: 移动web开发入门 移动端web开发技巧