【APICloud】App开发中加入系统分享功能案例源码分享

最近做一个在app中加入系统分享的功能,分享一下自己踩坑的记录和成果。

安卓可以加入系统相册和文件管理器的分享菜单中,iOS目前只做到了加入在其他应用里调起系统分享的菜单,系统相册还有一些问题没有解决,欢迎各位开发者指出,一起学习
1.Android先配置config.xml ,iOS先配置Info.plist
//config.xml: android.intent.action.SEND你app接受的单文件,mimeType是文件格式,可以自己去参考安卓官网查询

<intent-filter> 
    <action name="android.intent.action.SEND"/>  
    <category name="android.intent.category.DEFAULT"/>  
    <data mimeType="image/*" path="/"/> 
</intent-filter>
<intent-filter> 
    <action name="android.intent.action.SEND_MULTIPLE"/>  
    <category name="android.intent.category.DEFAULT"/>  
    <data mimeType="image/*" path="/"/> 
</intent-filter>

//Info.plist:记得一定要配置CFBundleTypeName字段,之前因为上架不配置此字段包无法上传,同理 LSItemContentTypes 是你app支持的文件类型。

<key>CFBundleDocumentTypes</key>
<array>
        <key>CFBundleTypeName</key>
                <string>A6026753217901</string>
        <key>LSItemContentTypes</key>
                <array>
                        <string>com.microsoft.word.doc</string>
                </array>
</array>

2.监听应用被其他应用调起

api.addEventListener({
                name : 'appintent'
        }, function(ret, err) {
                if(api.systemType === 'android'){

//点击系统分享菜单分享到自己app时,这里监听返回的参数是content://格式的,这个就是系统传过来的路径,不能直接使用,需要原生Uri对象转换
//不会原生自己封装模块的,我这边已经封装好了fileScan模块的streamToAbsolutePath

if(appParam['android.intent.extra.STREAM']){

//大家仔细观察下这个返回的参数,不像数组,中间还有个隐藏的空格字符,所以这里需要手动转换下,去掉中括号,去空格,转成以逗号分隔的形式。

var endPath =appParam['android.intent.extra.STREAM'].replace(/\[|]/g,'')
                            var filePath =filePath.replace(/\s+/g,'')
                            var fileScan =api.require('fileScan')
                            var param ={
                                streamPath:filePath
                            }
                            fileScan.streamToAbsolutePath(param,function(ret,err){

//ios可以直接返回绝对路径,这里不做多说

  if(ret.iosUrl&&ret.iosUrl.indexOf('/') === 0){

//拿到文件绝对路径

var filePath =ret.iosUrl
                      }
              }
});

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值