更新:目前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...'));
34 个评论
要回复文章请先登录或注册
黑桃
gadget2k
雪之梦技术驿站
底浪岩
cdz
wlws
陈旭媛
gadget2k
翾
小闹