请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

技术分享 快应用分享方法总结

16
回复
6658
查看
  [复制链接]

16

主题

112

帖子

920

积分

 楼主| 2018-5-30 15:55:07 显示全部楼层 |阅读模式
本帖最后由 jy 于 2018-7-19 11:56 编辑

快应用分享包含如下2种方式


1界面交互 → 分享   import share from '@system.share'    这个分享主要用于不同APP之间的数据传递,因此归到“界面交互”中,可以传递文本数据或文件数据

2、第三方服务 →  第三方分享  import share from '@service.share'
这个分享主要用于将快应用中的信息通过社交工具(微信、QQ、新浪微博等)分享出去,可以以图文、纯文字、纯图文、音乐、视频等形式进行分享,分享前需要在manifest.json 的 features 中对service.share进行appSign、wxkey、qqkey、sinakey等参数参数的设置,否则分享出去的内容都将以纯文字方式进行展示。

(微信分享时的appSign和wxkey设置可以参照关于微信分享的实现,亲测可用
[补充说明]
appSign 其实就是对应快应用开发项目 sign\release\certificate.pem 文件中  -----BEGIN CERTIFICATE-----   -----END CERTIFICATE----- 中间的那段(如果复制过来有回车换行符,请删除换行符)
马甲APP 微信开放平台上的移动应用(我们称之为马甲APP)可以使用HBuilder来创建,包名与快应用包名一致,签名也一致,签名可以用OPENSSL将pem签名转文件换为pk12签名文件,再用java的keytool工具将pk12转换为keystore签名文件。马甲APP无需上架到各大APP市场。


第三方分享时需要rom支持,部分厂商现有的rom还没有进行第三方分享适配,通过第三方分享出去的信息暂时只能以纯文字形式展示,甚至压根无法进行分享(总结:rom决定快应用能否实现第三方分享应有的效果,快应用渲染器决定第三方分享功能是否可以调起分享功能。)。
分享虽然初衷用于数据传递,但是将数据传递到社交APP上等同于进行分享,因此在rom不支持第三方分享的设备上,可以使用界面交互中的分享功能进行文本分享。

像华为就属于rom未适配第三方分享的厂商,已发布的快应用在华为设备上,如果通过第三方分享进行分享,系统是没有响应的。你可以通过system.device来判断手机厂商再选择分享方式,但是这样的弊端是得去摸索出还有哪些厂商也不支持第三方分享,而且一旦不支持的厂商将来对rom进行适配了,你的快应用程序还是会忽略第三方分享这种支持图文分享的方式。

如果你只想进行文字分享,建议你直接使用界面交互中的分享功能system.share,这个比较通用。

如果你想进行图文分享,建议你混用2种分享方式:
  1. import share from '@system.share'
  2. import shareSe from '@service.share'

  3. try{
  4.         shareSe.share({
  5.                 shareType: 0,
  6.                 title: '图文标题',
  7.                 summary: '图文内容',
  8.                 imagePath: '/img/图文消息图片.jpg',
  9.                 targetUrl: 'http://图文消息链接地址',
  10.                 success: function (data) {
  11.                         console.log('handling success')
  12.                 },
  13.                 fail: function (data, code) {
  14.                         console.log(`handling fail, code = ${code}`)
  15.                 }
  16.         });
  17. }catch(err){
  18.         share.share({
  19.                 type: 'text/webviewhtml',
  20.                 data: '分享的文字消息',
  21.                 success: function (data) {
  22.                         console.log('handling success')
  23.                 },
  24.                 fail: function (data, code) {
  25.                         console.log(`handling fail, code = ${code}`)
  26.                 }
  27.         });
  28. }        
复制代码



附:Hbuilder打包快应用马甲APP(apk)方法:

(资深安卓开发请忽略以下内容)

1、用openssl(点击下载,选择简易版即可,如:[size=13.3333px]v1.1.0h,安装后需要在系统环境变量中添加openssl安装目录的bin文件夹到path)和java jdk的keytool工具(点击下载[size=13.3333px],安装后需要在系统环境变量中添加java安装目录的bin文件夹到path)生成原生包所需keystore签名文件(其中123456是签名文件的私钥密码,appSignkey是证书别名,certificate.pem和private.pem 对应快应用项目 sign\release\中的签名文件
  1. openssl pkcs12 -export -in certificate.pem -inkey private.pem -out appSign.pk12 -passin pass:123456 -passout pass:123456 -name appSignkey
  2. keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore appSign.keystore -srckeystore appSign.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias appSignkey
复制代码

2、下载解压Hbuilder (非HbuilderX)
3、运行Hbuilder新建一个移动app项目,然后在Hbuilder中选择“发行 → 云打包 - 打原生安装包”
QQ图片20180530165726.png

4、按下图设置
Android包名:与快应用包名一致
证书别名:对应1中的  appSignkey
私钥密码:对应1中的  123456
证书文件:对应1中生成的证书文件appSign.keystore
捕获.JPG
5、【打包】后下载apk文件即可










回复

使用道具 举报

0

主题

3

帖子

10

积分

2018-6-1 13:45:31 显示全部楼层
第三方分享回调success,但是调不起微信,遇到过吗
回复

使用道具 举报

2

主题

10

帖子

60

积分

2018-6-7 16:14:39 显示全部楼层
方便分享一个分享页面的截图吗
回复

使用道具 举报

16

主题

112

帖子

920

积分

 楼主| 2018-6-7 16:39:22 显示全部楼层
Cheney 发表于 2018-6-7 16:14
方便分享一个分享页面的截图吗

是分享后的效果截图吗
回复

使用道具 举报

2

主题

10

帖子

60

积分

2018-6-11 11:17:17 显示全部楼层
本帖最后由 Cheney 于 2018-6-11 11:22 编辑
jy 发表于 2018-6-7 16:39
是分享后的效果截图吗

弹出的分享选项的样式,类似我截图这种。
我想看看都支持哪些渠道的分享。
IMG_6235.PNG
回复

使用道具 举报

2

主题

10

帖子

60

积分

2018-6-11 11:17:38 显示全部楼层
本帖最后由 Cheney 于 2018-6-11 11:23 编辑

回复

使用道具 举报

5

主题

12

帖子

85

积分

2018-6-20 21:41:35 显示全部楼层
用HBuild的时候提示 “google开发正证书信息有误”  这是什么原因?
还有就是关于appSign的,sign\release\certificate.pem 这个文件里面  -----BEGIN CERTIFICATE-----  与 -----END CERTIFICATE----- 中间的那段 的内容是多行的,是要把换行符去掉么?
回复

使用道具 举报

16

主题

112

帖子

920

积分

 楼主| 2018-6-21 10:29:18 显示全部楼层
citsos 发表于 2018-6-20 21:41
用HBuild的时候提示 “google开发正证书信息有误”  这是什么原因?
还有就是关于appSign的,sign\release\ ...

要去掉
回复

使用道具 举报

10

主题

25

帖子

175

积分

2018-7-6 15:49:32 显示全部楼层
为啥我不能起别名,大佬
keytool error: java.lang.Exception: Alias <appSignkey> does not exist
回复

使用道具 举报

146

主题

263

帖子

2240

积分

2018-7-9 11:08:20 显示全部楼层
你好,有空请看一下私信
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册