由于分享是没有成功失败的回调等机制,所以用户是可以分享后获得积分,然后再取消或删除分享的。因为没有办法做到绝对控制,所以一般都是直接绑定分享按钮的click事件,调用ajax去为用户增加积分。
思路很简单:既然是唯一的URL地址,那么你用注册的URL,比如是index.php/register/index,然后你在后面加上用户的唯一参数,用UID比较合适。就会变成index.php/register/index/id/001 这样,然后你在注册(register)控制器下的index方法中判断一下isset($_GET[id]),如果有id,你就将对应这个id的用户积分+1。ps:tp有两年没用了,不太记得url的路由是什么样子,上面的url只是随便举个列子。然后就是id参数后面的001最好加密一下,防止在发的时候被别人简单的修改,一定要用对称加密,不然你自己解密不了。
如果你有手机网站,可以在微信公共号设置外部链接接入。 如果看了一篇移动端网站想分享到微信中,可以在浏览器中分享出去。希望您采纳我的建议!
你百度“百度分享”里面有各种分享代码, 你照着那个来写就好了。
方式1:用自己公众号的sdk去实现分享;<br/> <script type="TEXT/javascript"> $(function () { if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))) { if (window.location.href.indexOf("?mobile") < 0) { //判断是手机端访问 if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { //判断是UC浏览器 if (typeof (ucweb) != "undefined") { $(".btnShareFriends").click(function () { var Browser = new Object(); Browser.ios = /iphone/.test(Browser.userAgent); //判断ios系统 var title = "测试分享到朋友圈"; var img = ""; var url = location.href; if (Browser.ios) { ucbrowser.web_share(title, img, url, 'kWeixin', '', '@39yst', ''); } else { ucweb.startRequest("shell.page_share", [title, img, url, 'WechatFriends', '', '', '']); } }); $(".btnWeixinShare").click(function () { var Browser = new Object(); Browser.ios = /iphone/.test(Browser.userAgent); //判断ios系统 var title = "测试分享到朋友圈"; var img = ""; var url = location.href; if (Browser.ios) { ucbrowser.web_share(title, img, url, 'kWeixinFriend', '', '@39yst', ''); } else { ucweb.startRequest("shell.page_share", [title, img, url, 'WechatTimeline', '', '', '']); } }); } } else { alert("请使用手机UC浏览器测试"); } } else { alert("请使用手机访问测试"); } } }); </script> </body> </html>这个需要注意uc只支持uc浏览器
第一, 用cookie, $_COOKIE第二, 用$_SESSION第三, global $var;第四, &引用第五, $GLOBALS引用
1、签名:url: 需要根据不同的页面动态获取,url不能进行encodeURIComponent,否则验签会失败 url不能包括微信添加的#后边的部分,所以应该处理为:window.location.href.split('#')[0] 签名用的url必须是调用JS接口页面的完整URL。nonceStr、timestamp:应该动态生成,而不能hardcode 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同为安全考虑,签名必须在后台进行,其他调用js在前台进行。2、ticket和accesstoken:accesstoken:同调用微信其他接口的accesstoken,必须全局缓存,以免影响其他业务,即是说:微信所有业务应该用同一个accesstoken去调用微信接口,而不能自己刷新accesstoken。ticket:同accesstoken一样,必须全局缓存,方式很多,可以放到数据库,或者放到缓存。目前ticket的有效时间为2小时,所以2小时内ticket未过期时,不能重复获取,否则可能导致ticket获取次数超过限额,导致sign失败。3、注意代码执行顺序首先应该获取签名,签名获取后在调用wx.config方法,然后再执行wx.ready、wx.error方法。4、其他每个页面加载完成后都应该重新从后台获取签名信息,避免签名失败具体开发步骤详见官方文档5、官方常见问题及处理方法:调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息。
申请应用AppKey申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的App,如下图,添加成功后可获取应用的AppKey。如何把app分享到微信2申请社交平台appkey集成前您需要为您的应用在各大社交网站的开放平台申请账号并通过审核,否则只能调用系统的分享菜单,无法跟踪分享的回调事件及统计平台如何把app分享到微信3引用youtui库项目将youtui-lib项目库和应用工程放在同一个目录下在PackageExplorer中右键点击工程的根目录,选择Properties(属性),然后点击,在Android选项点击Add添加youtui-lib如何把app分享到微信4注册需要分享的平台1.配置各分享平台key,该配置文件为youtui_sdk.xml,配置完放入工程的assets文件夹。2.如果需要分享到哪个平台就将该平台的Enable属性设置为true.3.如果需要将某个平台排列到前面,只需要改变它在youtui_sdk.xml文件中的位置即可。5各平台需要注意的事项:新浪微博:新浪微博需要验证应用签名,请一定要在新浪开放平台管理中心应用信息->基本信息->Android签名包名信息配置该信息每次包名变化或者使用的.keystore变化都会导致应用签名变化,请重新到新浪微博开放平台设置。运行Demo时如果重新编译,因为使用的.keystore文件变化也会导致应用签名变化,导致Demo新浪微博分享无法正常工作,请运行Demo时使用Demo工程包中提供的debug.keystore替换C:\Users\Administrator.android中的debug.keystore文件微信和朋友圈:微信和朋友圈也需要验证应用签名,请在微信开放平台管理中心修改应用->开发信息配置。QQ和QQ空间:QQ和QQ空间使用的是腾讯开放平台api,请在腾讯开放平台申请账号和注册应用,请不要使用QQ互联(用于网站账号登录)的配置,虽然都是腾讯的,但是两个平台并不通用,除了需要在youtui_sdk.xml配置信息,还需要在manifest文件中的android:scheme中的tencent后的一串数字换成自己应用的appid。最后一行配置说明:选用调用系统分享菜单功能在AndroidManifest.xml注册权限在AndroidManifest.xml注册需要的Activity微信和朋友圈回调设置如果需要分享微信和朋友圈,必需建一个应用包名+.wxapi的包,在该包下建WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)publicclassWXEntryActivityextendscn.bidaround.youtui.wxapi.WXEntryActivity{}如图:(将com.xingxinglangtuoche替换成你应用的package名,微信回调会使用到)如何把app分享到微信初始化友推开发者请在自己的程序开始,最好是在MainActivity的onCreate方法调用YtTemplate.init(this)初始化友推sdk,这样友推sdk才能进行后续调用(否则分享等操作会出现空指针异常),例如:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);YtTemplate.init(this);/初始化友推/initView();}应用退出时:在您项目的出口Activity的onDestroy方法的第一行插入下面的代码YtTemplate.release(this);此方法用于释放内存,统计用户使用情况,一旦调用了release,就必须重新调用init才能使用友推的功能,否则会出现空指针异常;创建ShareData实例,调用该实例的set方法设置需要分享的数据:创建ShareData实例,调用该实例的set方法设置自己需要分享的数据,关于该实例具体内容见下文,如果只是分享应用则只需要设置setIsAppShare(true)就可以分享应用在友推后台填写的信息和下载链接。ShareData包含的字段:isAppSharetextimagePathimageUrldescriptiontitletarget_url判断是否为分享应用待分享的文字,短信要小于70个字符,微博要小于140个字符,如果需要分享链接,最好将链接url放在最后待分享的本地图片地址,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片待分享网络图片url,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片待分享内容的描述待分享内容的标题待分享内容的跳转链接通过创建该类实例,调用实例的set方法设置这些参数,例如:ShareDatashareData=newShareData();shareData.isAppShare=false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新,后面的值不用设置。shareData.setDescription("友推积分组件");shareData.setTitle("友推分享");shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,");shareData.setTarget_url("");shareData.setImageUrl("");shareData.setImagePath("");各个平台分享数据的限制和注意事项:因为各个平台的分享限制,请分享时尽量分享图片+链接,依靠链接来了解信息1)微信朋友圈微信分享为linkcard形式,超出的文字部分不会显示2)新浪微博很低版本的新浪微博不支持发多类型微博,进行图文分享时只会分享图片,新浪微博分享消息最长为140字3)QQ、QQ空间QQ分享的消息最长40字,分享的标题最长30字,多余的部分将被忽略,description将被忽略QQ空间分享的消息最长200字,分享的标题最长600字,多余的部分将被忽略,description将被忽略4)腾讯微博只有image(imagePath或imageUrl)和text被分享,其他字段忽略,腾讯微博分享消息最长为140字5)人人网只有image(imagePath或imageUrl)和text被分享,其他字段忽略6)短信只有text被分享,其他字段忽略7)邮件只有text被分享,其他字段忽略如何把app分享到微信调用友推分享推荐组件为应用添加一个分享推荐按钮,如:如何把app分享到微信在分享按钮事件中调用youtui的组件即可,示例代码:publicvoidonClick(Viewv){if(v.getId()==R.id.popup_bt){/调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种//创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分/YtTemplateblackTemp=newYtTemplate(this,YouTuiViewType.BLACK_POPUP,false);//黑色网格样式不需要积分活动/YtTemplateblackTemp=newYtTemplate(this,YouTuiViewType.WHITE_LIST,ture);///白色列表样式需要积分活动ShareDatashareData=newShareData();shareData.isAppShare=false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新后面的值不用设置。shareData.setDescription("友推积分组件");shareData.setTitle("友推分享");shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试试吧");shareData.setTarget_url("");shareData.setImageUrl("");shareData.setImagePath("");blackTemp.setShareData(shareData);//设置默认的分享数据;shareData设置参看4.6//**如果要为某个平台设置不一样的分享信息。则单独设置*///blackTemp.addData(YtPlatform.PLATFORM_QQ,shareData);//调出分享窗口blackTemp.show();//如果需要自定义分享事件,可以创建监听事件,然后在回调中处理YtShareListenerlistener1=newYtShareListener(){@OverridepublicvoidonSuccess(ErrorInfoarg0){}@OverridepublicvoidonPreShare(){}@OverridepublicvoidonError(ErrorInfoarg0){}@OverridepublicvoidonCancel(){}};//给新浪微博添加分享监听blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO,listener1);//给QQ添加分享监听//blackTemp.addListener(YtPlatform.PLATFORM_QQ,listener2);}
引入js文件和css文件: 2.插件参数配置: //本地数据 var data =["java","javaee","jquery","c++","css","html","htm5","bb","ejb","c#"]; //开始 $().ready(function () { $("#autoComplete").autocomplete(data, { minChars: 0, max: 5,