Cp0204
Cp0204
  • 发布:2015-01-06 22:29
  • 更新:2024-03-27 16:54
  • 阅读:40385

通过native.js调用系统分享 - 示例

分类:Native.js

更新:目前plus.share已经实现了对系统分享的调用。已无必要使用Native.js调用系统分享。参考http://www.html5plus.org/doc/zh_cn/share.html#plus.share.sendWithSystem

============================================================================

先说明,我对原生只是有一点点了解。我的目的是教大家,希望大家也可以自己写native.js。
前几天我问为什么不集成 Intent.ACTION_SEND 分享,@DCloud_heavensoft 说官方刚好正在做。
今晚读了一下:
http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/114
http://www.dcloud.io/docs/api/zh_cn/android.shtml
对比了一下示例和网上找的原生代码,试着捣鼓,也捣鼓出来了。
二楼放代码,三楼放教程。


二楼不支持MD,那这里更新好了,直接拿去用就行了

function share(shareTip,shareText){  
var Context = plus.android.importClass("android.content.Intent");  
var Main = plus.android.runtimeMainActivity();  
var shareIntent=new Context(Context.ACTION_SEND);  
shareIntent.setType("text/plain");   
shareIntent.putExtra(Context.EXTRA_TEXT, shareText);  
Main.startActivity(Context.createChooser(shareIntent,shareTip));  
}  
//调用  
share('分享到...','要分享的文本');

带注释

function share(shareTip,shareText){  
    //导入Java类对象  
    var Context = plus.android.importClass("android.content.Intent");  
    //获取应用主Activity  
    var Main = plus.android.runtimeMainActivity();  
    //将类Context的这个行为(Action)ACTION_SEND,赋给shareIntent  
    var shareIntent=new Context(Context.ACTION_SEND);  
    //***以下两种写法是一样的  
    //plus.android.invoke(shareIntent,"setType","text/plain");  
    //plus.android.invoke(shareIntent,"putExtra",Context.EXTRA_TEXT,shareText);  
    //设置分享类型  
    shareIntent.setType("text/plain");   
    //设置分享文本  
    shareIntent.putExtra(Context.EXTRA_TEXT, shareText);  
    //***以上两种写法是一样的  
    //指定分享的包名  
    //shareIntent.setPackage('com.tencent.mm',);  
    Main.startActivity(Context.createChooser(shareIntent,shareTip));  
}

原生代码这样写,大家对比下,就发现不难懂,字符对应上

Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);  
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  
sendIntent.setType("text/plain");  
startActivity(Intent.createChooser(sendIntent,'send to...'));
24 关注 分享
DCloud_UNI_CHB DCloud_heavensoft 凯哥 小闹 深井冰_01 多串君 h5_学习者 有毒葡萄 LHQ 梓宏 陈旭媛 蔡繁荣 鸿运当头 寻梦111 x***@sina.cn 雪之梦技术驿站 东方小浪哥 小新的狗叫小白 2***@qq.com 8***@qq.com 在职憨生 Roach sd791002 2***@qq.com

要回复文章请先登录注册

sd791002

sd791002

这两个网站是给的好~
2020-06-19 09:03
sd791002

sd791002

http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/114
http://www.dcloud.io/docs/api/zh_cn/android.shtml
2020-06-19 09:03
farley

farley

plus undefined 怎么处理
2019-02-28 14:46
Dear丶Bo

Dear丶Bo

怎么能获取分享的状态呢?
2018-11-12 14:50
高风

高风

怎么可以分享图文,这样是不是只能文字
2018-11-02 18:19
DCloud_heavensoft

DCloud_heavensoft

回复 Winson1138 :
仔细看帖子
2018-10-31 05:16
Winson1138

Winson1138

还需要引入什么JS文件吗。我直接用这个代码不行的?
2018-10-31 02:23
2***@qq.com

2***@qq.com

怎样才能进行监听分享操作
2018-01-26 22:07
c***@qq.com

c***@qq.com

是不是只能分享文本?
2017-04-24 18:10
Native_O

Native_O

微信报错:获取资源失败,qq可以
2017-03-27 11:26