专栏首页王磊的博客Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项

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();

Xamarin系列其他推荐 


  • 《Xamarin开发笔记—WebView双项事件调用》
  • 《Xamarin开发笔记—百度在线语音合成》
  • 《Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • golang中的类和接口的使用

    类使用:实现一个people中有一个sayhi的方法调用功能,代码如下: type People struct { //.. } func (p *Peop...

    Java中文社群-磊哥
  • OpenCV添加中文(五)

    OpenCV添加文字的方法putText(...),添加英文是没有问题的,但如果你要添加中文就会出现“???”的乱码,需要特殊处理一下。 下文提供封装好的(代码...

    Java中文社群-磊哥
  • OpenCV添加中文(五)

    Java中文社群-磊哥
  • Storefront与NetScaler

    http://kaiqian.blog.51cto.com/blog/236001/1344447

    py3study
  • (项目)在线教育平台(十一)

      首页的全局搜索功能可以对课程,机构,教师进行全局搜索,搜索的代码放在deco-common.js文件中:

    py3study
  • 像机器一样思考|TW洞见

    今日洞见 文章作者、部分图片来自ThoughtWorks:仝键。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、...

    ThoughtWorks
  • 01-GAN公式简明原理之铁甲小宝篇

    声明:以下内容纯为形成笔记过程中,增加趣味性,无他。若有相关利益冲突/侵权,指出删。不当处,亦欢迎指正。

    公众号机器学习与生成对抗网络
  • 【React】:Refs

    Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。

    WEBJ2EE
  • xml序列化和反序列化(一)

      最近项目中需要调用第三方webservice,入参和出参采用xml格式,大致如下:

    yaphetsfang
  • Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示

    字符串简单处理的话用字符串切片很容易实现, 形如:a="Hello Python!",a[-7:]="Python!", 规则:大于等于冒号前的小于冒号后的...

    小蓝枣

扫码关注云+社区

领取腾讯云代金券