تلقى المحرر مهمة قيادية لكتابة صفحة نشاط الهاتف المحمول h5، والنقر على محتوى الصفحة لاسترداد iOS وAndroid وتطوير وظيفة المشاركة (بما في ذلك WeChat، وWeChat Moments، وQQ، وQQ Space، وما إلى ذلك) التي لم يسجلها المستخدم لا يمكنك المشاركة إلا بعد تسجيل الدخول. بعد نجاح المشاركة، يمكنك بدء طلب لإعطاء وظيفة قسيمة، وفيما يلي الخبرة المكتسبة، كمرجع فقط.
يوصى بعدم استخدام ShareSDK
قم بتحميل المعلومات المفيدة مباشرة: لا داعي للرجوع إلى مكتبات أخرى
var u = navigator.userAgent;//تحديد نوع الهاتف المحمول//---------------------------------- ----------- --- هاتف أندرويد ---------------------------------- -------------- ----------// if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //Android var callbackButton = document.getElementById ('btnImg'); // احصل على العقدة callbackButton.onclick = function (e) { e.preventDefault(); // حظر الوظيفة الأصلية if (userId == null) { // معرفة ما إذا كنت قد قمت بتسجيل الدخول، إذا لم تقم بتسجيل الدخول WebViewJavascriptBridge.callHandler('loginAction', function (response) {})// هنا صفحة h5 ل اتصل بطريقة تسجيل الدخول إلى Android} else {// تم تسجيل الدخول بالفعل إلى WebViewJavascriptBridge.callHandler('shareAction', { // تستدعي صفحة h5 طريقة Android لمشاركة المعلمات التي تم تمريرها إلى android، content: أنت تعامل، وأنا أدفع الفاتورة، وأدعو الأصدقاء للذهاب (للمتعة) وحجز رحلة معًا، // رابط الصورة النصية المشتركة: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // عنوان Url للصورة المشتركة: Fun Hail - في انتظارك في محطة Xinghai Square، // عنوان URL مشترك للصورة: http://agent.qyueche.com/sup/ShareSdk/xing.html، // منصة رابط URL المشتركة: [2، 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } ، الوظيفة (الاستجابة) {}) } } الوظيفة ConnectWebViewJavascriptBridge(callback) {// هذا بعد المشاركة الناجحة if (window.WebViewJavascriptBridge) { رد الاتصال (WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady' , function() { callback(WebViewJavascriptBridge) }, false } } ConnectWebViewJavascriptBridge(function(bridge) { Bridge.init(function(message, ResponseCallback) { }) Bridge.registerHandler('shareComplete', function (data, ResponseCallback) { ; // طريقة رد الاتصال ios، // تنبيه (بيانات) if (data == 1) { // إذا كانت المشاركة ناجحة $.ajax({ // واجهة طلب لتلقي الكوبونات اكتب: get، contentType: application/x-www -form-urlencoded، // url: http://main.qyueche.com/api/coupon/receiveCoupon?userId= + userId + // &takeCouponType=2&couponId=176، url: http://dev.qyueche.cn/api/coupon/receiveCoupon?userId= + userId + &takeCouponType=2&couponId=187، البيانات: {}، نوع البيانات: json، النجاح: الوظيفة (البيانات) { // تلقي بنجاح swal(data) .message); }, خطأ: الوظيفة (XMLHttpRequest, textStatus, errorThrown) { // فشل الاستلام swal('فشل الاستلام!'); } }) } else { //فشلت المشاركة swal('فشلت المشاركة!' } }) Bridge.registerHandler('loginComplete', function (data , ResponseCallback) { // طريقة تسجيل الدخول إلى iOS، userId = data }) }) } else if (u.indexOf('iPhone') > -1) { //------------- --- -----------------------هاتف أبل ---------------------- ----------------------------------//// swal(iPhone); وظيفة setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none'; WVJBIframe.src = 'https://__bridge_loaded__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0) } setupWebViewJavascriptBridge(وظيفة (جسر) { Bridge.registerHandler('shareComplete', function (data, ResponseCallback) { // طريقة رد الاتصال ios، if (data.code == 1) { // إذا كانت المشاركة ناجحة $.ajax({ // نوع طلب الواجهة لتلقي القسائم : الحصول على نوع المحتوى: application/x-www-form-urlencoded، // url: http://main.qyueche.com/api/coupon/receiveCoupon?userId= + userId + // &takeCouponType=2&couponId=176، عنوان url: http://dev.qyueche.cn/api/coupon/receiveCoupon?userId= + userId + &takeCouponType=2&couponId=187، البيانات: {}، نوع البيانات: json، النجاح: الوظيفة (البيانات) { // تم الاستلام بنجاح swal(data.message }, خطأ: function (XMLHttpRequest, textStatus, errorThrown) { // فشل الاستلام swal('فشل الاستلام!'); } }) } else { //فشلت المشاركة swal('فشلت المشاركة!' } }) Bridge.registerHandler ('loginComplete' , function (data, ResponseCallback) { // طريقة تسجيل الدخول إلى iOS، userId = data.userId; }) var callbackButton = document.getElementById('btnImg'); // احصل على العقدة callbackButton.onclick = function (e) { // انقر فوق الحدث e.preventDefault(); // منع الوظيفة الأصلية if (userId == null) { //See إذا قمت بتسجيل الدخول Bridge.callHandler('loginAction', function (response) {}) } else { Bridge.callHandler('shareAction', { // تم تمرير محتوى المعلمة إلى ios: أنت تعامل، وأنا أدفع الفاتورة، وأدعو الأصدقاء للذهاب (للمتعة) وحجز رحلة معًا، // رابط الصورة النصية المشتركة: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // عنوان Url للصورة المشتركة: Fun Hail - في انتظارك في محطة Xinghai Square، // عنوان URL مشترك للصورة: http://agent.qyueche.com/sup/ShareSdk/xing.html، // منصة رابط URL المشتركة: [2، 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , الوظيفة (الاستجابة) {}) } } }) }
بشكل عام، أوجه التشابه في التعليمات البرمجية بين Android وiOS متشابهة جدًا، لكن موضع الكود مختلف. تجدر الإشارة إلى أن callHandler هي طريقة استدعاء الصفحات في iOS أو Android، وregisterHandler هي طريقة استدعاء الصفحات في iOS وAndroid. .
يتم تخصيص اسم الطريقة لموضع المربع الأحمر في الصورة بواسطة مطور صفحة h5 وموظفي iOS وAndroid.
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.