前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Salesforce学习 Mobile(一)Publisher for Community Cloud

Salesforce学习 Mobile(一)Publisher for Community Cloud

原创
作者头像
repick
修改2021-03-19 10:21:55
6370
修改2021-03-19 10:21:55
举报
文章被收录于专栏:SalesforceSalesforce

关于salesforce手机端的开发有一个应用叫【Publisher Playground】,今天简单讲一下配置以及如何适用于Community Cloud,ios系统和安卓系统都可以。

现在以安卓手机为例子,首先在GooglePlay把这个应用下载下来,如下图。

※正常在国内是无法下载的,可以自己想办法

打开之后,如下图所示,可以直接输入准备好的Community的URL,就可以进入登录页面了,如果没有Community,可以参照之前的文章Salesforce学习 CommunityCloud(一)开发前的准备工作

输入User和密码之后,就会直接进入Community画面了。

PC端登录后效果:

上边手机端和PC端进入之后,打开的是同一个画面,因为画面大小布局不同,所以一般手机和PC想要展示的画面是不一样的。如果分别做成两个Page,登录成功之后,要如何实现跳转呢,手机端登录的情况下,要求有相应Check要怎么实现呢,我们可以考虑使用【Login Flows】功能,具体请参照。

1.手机端专用HomePage做成

这个是正常的HomePage↓↓↓

手机端用的Page做成↓↓↓,记住URL,后边访问时使用。

做成之后,可以通过画面右上角第三个图标选择手机图标进行预览,效果如下

2.跳转用VisualforcePage做成

PC端登录,手机端登录的判断逻辑,跳转和验证的逻辑,都可以在这里实现。

loginFlowTest.page

代码语言:javascript
复制
<apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" controller="VFLoginFlowController" action="{!initialNavigation}">
    {!header}
    <apex:pageMessages />
</apex:page>

VFLoginFlowController.cls

代码语言:javascript
复制
public with sharing class VFLoginFlowController {
    public string header { get; set; }
    public Boolean isMobile {get; set;}
    public DeviceWrapper deviceWrapper { get; set; }
    public VFLoginFlowController () {
        this.isMobile = false;
        this.deviceWrapper = new DeviceWrapper();
        this.header= ApexPages.currentPage().getHeaders().get('User-Agent');
        if (header.contains('iPhone') || header.contains('android') || header.contains('Android') || header.contains('webOS')) {
            this.isMobile = true;
        }
        if(this.isMobile) {
            if(this.header.contains('Publisher')) {
                deviceWrapper.appType = 'Publisher';
            } else if(this.header.contains('mitoco_Calendar') || this.header.contains('mitoco Calendar')) {
                deviceWrapper.appType = 'mitocoCal';
            } else if(this.header.contains('TalkAppStore') || this.header.contains('mitoco Talk')) {
                deviceWrapper.appType = 'mitocoTalk';
            }
        } else {
        }
    }
    public PageReference initialNavigation() {
        String baseURL = URL.getSalesforceBaseUrl().toExternalForm();
        String destinationURL = baseURL + '/UrsaMajor' + '/s/';
        String errorType;
        if(this.isMobile) {
            if(this.deviceWrapper.appType == 'Publisher') {
                destinationURL += 'TopPageMobile';
                return Auth.SessionManagement.finishLoginFlow(destinationURL);
            } else {
                // TODO
                destinationURL += 'XXXXXXX';
                return Auth.SessionManagement.finishLoginFlow(destinationURL);
            }
        } else {
            return Auth.SessionManagement.finishLoginFlow(destinationURL);
        }
    }
    public class DeviceWrapper {
        public String appType {get; set;}
    }
}

3.Login Flows做成

Setup→Login Flows→New

在【VisualforcePage】栏选择上边做成的Page名,【Profile】栏选择允许登录User的profile名。

效果展示:

PC端登录也不会被影响

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.手机端专用HomePage做成
  • 2.跳转用VisualforcePage做成
  • 3.Login Flows做成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档