لقد تلقيت طلبًا لاسلكيًا منذ يومين، كمبتدئ، كنت مشغولاً لعدة أيام... يوجد رابط على الصفحة. إذا قام المستخدم بتثبيت التطبيق، فانقر لفتح التطبيق المقابل إذا قام المستخدم بذلك لم يتم تثبيته، انقر لفتح التطبيق المقابل لإعداد الاتصال، لقد بحثت عبر الإنترنت وقلت بشكل أساسي أنه يمكن تحقيقه، لكن الوضع الفعلي ليس متفائلاً.
بالطبع، هذا مجرد أحد المتطلبات. هناك أيضًا العديد من التطبيقات في الوقت الحاضر. عادةً ما تحتوي صفحات H5 المشتركة على زر للفتح على الفور. إذا تم تثبيت التطبيق محليًا، فسيتم استدعاء التطبيق المحلي مباشرة غير مثبت، ثم انتقل للتنزيل. هذه استراتيجية عادية جدًا للترويج وتحويل حركة المرور. في الآونة الأخيرة، طرح مدير المنتج مثل هذا الطلب، وقام بإنشاء شريط تنزيل مع فتح التطبيق مثل وظيفة Toutiao، وما إلى ذلك، ولن أتحدث عن الباقي!
الآن دعنا نصل إلى الموضوع الرئيسي اليوم، كيف يمكن لـ H5 فتح تطبيق محلي أو تنشيطه على الهاتف المحمول، وبالنظر إلى الإجابات على Baidu وGoogle، هناك نوعان فقط:
الطريقة الأولى:من خلال تكوين المخطط مباشرة على جانب Android في href في علامة HTML، بالطبع، إذا كانت هناك تكوينات مضيفة أخرى، فما عليك سوى اتباعها. التكوين والرمز على جانب Android كما يلي:
التكوين الجانبي للأندرويد:
<نشاط android:name = .MainActivity> <intent-filter> <action android:name = android.intent.action.MAIN /> <category android:name = android.intent.category.LAUNCHER /> </intent-filter> <intent-filter> <action android:name=android.intent.action.VIEW/> <category android:name=android.intent.category.DEFAULT/> <category android:name=android.intent.category.BROWSABLE/> <data android:host=jingewenku.com android:scheme=abraham/> </intent-filter> </النشاط>
ملاحظة: إذا تم تكوين ذلك على صفحة بدء التشغيل، فيجب وضعه جنبًا إلى جنب مع الملصق، وإلا فلن يكون هناك رمز لتطبيق الهاتف المحمول بعد التشغيل؛ لاحظ أن بروتوكول المخطط يجب أن يكون صغيرًا، وإلا فسيكون هناك استثناء التي لا تستطيع الرد!
كود أتش تي أم أل:
<html> <head> <meta http-equiv=Content-Type content=text/html; charset=UTF-8> <title>أدخل العنوان هنا</title> </head> <body> <a href=abraham: //jingewenku.com/?pid=1>فتح التطبيق</a><br/> </body></html>
نحن هنا نلقي نظرة على تنسيق بروتوكول ربط المخطط:
< a href=[scheme]://[host]/[path]?[query]>بدء التطبيق</a>
معنى كل بند هو كما يلي:
المخطط: تحديد التطبيق الذي تم تشغيله. ※التفاصيل موضحة لاحقًا
المضيف: الوصف المناسب
المسار: مفتاح ضروري عند تمرير القيمة ※ لا بأس إذا لم تكن متوفرة
الاستعلام: احصل على مفتاح وقيمة القيمة ※ لا بأس إذا لم يكن لديك
يمكن استخدام ما سبق لفتح التطبيق المحلي، بالطبع، في حالة وجود التطبيق، وإلا فلن يكون هناك أي استجابة.
قد تتساءل، هل تم تكوين بروتوكول المخطط في Android في كود HTML أعلاه؟ من الواضح أنني لم أقم بتكوين معرف الهوية، فلماذا أكتب هذا؟ وذلك لأنه في بعض الأحيان عندما نقوم باستدعاء التطبيق المحلي، قد نقوم بتمرير بعض المعلمات إلى التطبيق، ويمكننا تكوين هذه المعلمات هنا، ونحتاج فقط إلى إدخالها في الكود كما يلي:
Intent Int = getIntent(); Uri uri =int.getData();
إذا كنت لا تزال ترغب في تكوين بروتوكول المخطط في Android، فيمكنك أيضًا القيام بذلك:
Uri uri = getIntent().getData();if(uri != null) { // معلومات عنوان url الكاملة String url = uri.toString(); Log.e(TAG, url: + uri); مخطط = uri.getScheme(); Log.e(TAG, مخطط: + مخطط); // الجزء المضيف String host = uri.getHost(); host); // جزء المنفذ int port = uri.getPort(); Log.e(TAG, host: + port); // مسار الوصول String path = uri.getPath(); path); List<String> pathSegments = uri.getPathSegments(); // جزء الاستعلام String query = uri.getQuery(); // احصل على قيمة المعلمة المحددة StringgoodsId = uri.getQueryParameter(goodsId);}
كيفية تحديد ما إذا كان المخطط صالحًا:
PackageManager packageManager = getPackageManager();Intentint = newIntent(Intent.ACTION_VIEW, Uri.parse(abraham://jingewenku.com:8888/goodsDetail?goodsId=10011002));List<ResolveInfo> والأنشطة = packageManager.queryIntentActivities(intent, 0);booleanisValid = !activities.isEmpty();if(isValid) { startActivity(intent);}
هذه الطريقة هي أيضًا الطريقة الأكثر شيوعًا على Baidu، ولكنها تسبب مشكلة. الشرط المذكور أعلاه هو أن يكون لديك اتصال بالصفحة. إذا قام المستخدم بتثبيت التطبيق، فانقر لفتح التطبيق المقابل إذا لم يكن كذلك تم تثبيته، انقر لفتح اتصال الإعداد المقابل ومن الواضح أن هذا لا يلبي المتطلبات ولا يمكن استخدامه إلا لبعض الاحتياجات الفردية.
الطريقة الثانية:نظرًا لأن تكوين بروتوكول المخطط في href غير ممكن، فلا يمكن تحقيقه إلا من خلال كود js. وبهذه الطريقة فقط يمكن فتح التطبيق بناءً على الحكم عندما يكون متاحًا، والانتقال إلى رابط التنزيل للتنزيل عندما لا يكون كذلك.
نحن نعلم أن Js لا يمكنه تحديد ما إذا كان هناك تطبيق معين مثبت على الهاتف، لذلك لا يمكننا حفظ البلد إلا من خلال المنحنيات. إذا تعذر استدعاء التطبيق لفترة طويلة، فسيتم تعيينه افتراضيًا لم يتم تثبيته، ثم انتقل للتنزيل. بالطبع، ليس هذا ما توصلت إليه، بل هذا ما يعتقده كبار الأشخاص على الإنترنت. وهنا علينا أن نقسم الأمر إلى حالتين.
1. استيقظ مباشرة
ملاحظة: يمكنك تغيير التطبيق من خلال h5. على سبيل المثال، قم بزيارة عنوان URL، وانقر فوق الزر، وافتح التطبيق. إذا لم يكن تطبيق التطبيق مثبتًا، فانتقل مباشرة إلى صفحة تنزيل التطبيق في متجر التطبيقات أفضل من خلال النقر عليه. إذا تم تثبيته باستخدام التطبيق، فيمكن تنشيطه في متصفحات الأجهزة المحمولة الرئيسية (متصفح 360، ومتصفح UC، ومتصفح Sogou، ومتصفح QQ، ومتصفح Baidu) وعميل QQ. لا يمكن إيقاظ عميل WeChat وعميل Sina Weibo وعميل Tencent Weibo.
الرمز هو كما يلي:
<html xmlns=http://www.w3.org/1999/xhtml><head><meta http-equiv=Content-Type content=text/html;charset=utf-8><head><script src=http://libs.baidu.com/jquery/1.9.0/jquery.js></script><title>انقر للاستيقاظ التجريبي</title></head><body><style>#zjmoblieststart {font -size:40px;}</style><!--Description: يمكنك تغيير التطبيق من خلال h5. على سبيل المثال، قم بالوصول إلى عنوان URL، وانقر فوق الزر، وافتح التطبيق. إذا لم يكن تطبيق التطبيق مثبتًا، انتقل مباشرة إلى التطبيق. صفحة تنزيل التطبيق الخاصة بالمتجر، بالنقر فوق. التوافق جيد إذا تم تثبيت التطبيق، فيمكن تنشيطه في جميع متصفحات الأجهزة المحمولة الرئيسية (متصفح 360، ومتصفح uc، ومتصفح Sogou، ومتصفح QQ، ومتصفح Baidu) وعميل QQ. لا يمكن إيقاظ عميل WeChat وعميل Sina Weibo وعميل Tencent Weibo. --><a href=zjmobile://platformapi/startapp id=zjmobliestart target=_blank>استيقظ على قاعة أعمال Zhejiang Mobile Mobile! </a><script type=text/javascript> function applink(){ return function(){ var clickedAt = +new Date; setTimeout(function(){ !window.document.webkitHidden && setTimeout(function(){ if ( + تاريخ جديد - تم النقر عليه < 2000) { window.location = 'https://itunes.apple.com/us/app/zhe-jiang-yi-dong-shou-ji/id898243566#weixin.qq.com'; } }, 500 } }; .getElementById(zjmobliestart).onclick = applink(); </script> </body></html>
2. انقر للتنبيه
ملاحظة: يمكنك تنشيط التطبيق من خلال h5. إذا قمت بزيارة عنوان URL، فيمكنك فتح التطبيق مباشرةً، وإذا لم يكن تطبيق التطبيق مثبتًا، فانتقل مباشرة إلى صفحة تنزيل التطبيق في متجر التطبيقات. التوافق العام: يمكن إيقاظه في متصفحات الهواتف المحمولة الرئيسية (متصفح 360، ومتصفح uc، ومتصفح Sogou، ومتصفح QQ، ومتصفح Baidu). لا يمكن إيقاظ WeChat وعميل QQ وعميل Sina Weibo وعميل Tencent Weibo.
الرمز هو كما يلي:
<!Doctype html><html xmlns=http://www.w3.org/1999/xhtml><head><meta http-equiv=Content-Type content=text/html;charset=utf-8><head> <script src=http://libs.baidu.com/jquery/1.9.0/jquery.js></script><title>الاستيقاظ التجريبي مباشرة</title></head><body><style>#zjmoblieststart{ Font -size:40px;}</style><!--Description: يمكنك تنشيط التطبيق من خلال h5. إذا قمت بزيارة عنوان URL، فيمكنك فتح التطبيق مباشرةً، وإذا لم يكن تطبيق التطبيق مثبتًا، فانتقل مباشرة إلى التطبيق. تتمتع صفحة تنزيل التطبيق في المتجر بتوافق عام: يمكن تنشيطها في جميع متصفحات الأجهزة المحمولة الرئيسية (متصفح 360، ومتصفح uc، ومتصفح Sogou، ومتصفح QQ، ومتصفح Baidu). لا يمكن إيقاظ عميل WeChat QQ، وعميل Sina Weibo، وعميل Tencent Weibo. --><p id=zjmobliestart>استيقظ على قاعة أعمال Zhejiang Mobile Mobile! </p><script type=text/javascript> function applink(){ window.location = 'zjmobile://platformapi/startapp'; var clickedAt = +new Date; && setTimeout(function(){ if (+تاريخ جديد - تم النقر عليه < 2000){ window.location = 'https://itunes.apple.com/us/app/zhe-jiang-yi-dong-shou-ji/id898243566#weixin.qq.com'; } }, 500 }, 500) }applink(); ;</script> </body></html>
وبهذه الطريقة، اكتملت احتياجاتنا، وخلال هذه العملية، واجهنا أيضًا العديد من تفسيرات الأشخاص المتحمسين، وسأقوم بتسجيلها هنا، في البداية، لم يفهم بعض الأشخاص احتياجاتي واعتقدوا أنني كنت أقوم بتنفيذها على جانب Android. لقد طلبوا مني تمرير اسم الحزمة للتحقق من تثبيت التطبيق، سجل الطريقة هنا، الكود كما يلي:
لمزيد من الطرق، يرجى مراجعة فئة الأدوات الخاصة بي: CommonUtilLibrary
يعتقد البعض الآخر أنني أريد استدعاء التطبيق المحلي عن طريق تحميل عرض الويب في التطبيق، وسأقوم بتسجيله هنا أيضًا.
webView.setWebViewClient(new WebViewClient(){ @Override public boolean mustOverrideUrlLoading(WebView view, String url) { Uri uri=Uri.parse(url); if(uri.getScheme().equals(abraham)&&uri.getHost(). يساوي(jingewenku.com)){ String arg0=uri.getQueryParameter(arg0); arg1=uri.getQueryParameter(arg1) }else{ view.loadUrl(url } return true }});
تجدر الإشارة أيضًا إلى أنه إذا تم استدعاء التطبيق المحلي في WeChat، فإن WeChat على الهاتف المحمول يستخدم متصفح WeChat المدمج (يمكنك إرسال عنوان الصفحة التي تم الحصول عليها مسبقًا على الخادم إلى أي من جهات الاتصال الخاصة بك، انقر فوق أرسل رسالة لفتح صفحة الويب) افتح صفحة HTML البسيطة هذه. ملاحظة: ليس من الممكن فتح المخطط://host/datastring مباشرةً. لن يقوم WeChat بتحليل سلسلة الأحرف هذه في عنوان URL الصفحة للتصفح باستخدام WeChat. بعد الدخول ستظهر لك الصفحة التي قمنا بتصميمها للتو. في هذا الوقت، لن يؤدي النقر لبدء التطبيق مباشرة إلى تنشيط التطبيق المثبت مسبقًا نظرًا لأن WeChat قام بحظره، فأنت بحاجة إلى اختيار فتحه في المتصفح من القائمة الموجودة في الزاوية اليمنى العليا. في هذا الوقت، قد يتم تنشيط بعض المتصفحات، ولكن لا يمكن لبعض المتصفحات ذلك. على سبيل المثال، إذا كان المتصفح المدمج في جهاز اختبار المؤلف MX4 لا يعمل، فيمكن تنشيط متصفح UC. لا يمكن تنبيه بعض المتصفحات، لقد اطلعت على الكثير من المعلومات ولا يمكنني حلها بالكامل. الشيء الوحيد الذي يمكنني التفكير فيه الآن هو السماح للواجهة الأمامية بإصدار حكم على المتصفح الذي يواجه المشكلة، وسيطالب بذلك إنه غير مدعوم وما هو المتصفح الذي يجب استخدامه. إذا كان لدى أي قارئ حل، يرجى ترك رسالة، شكرا لك!
حاشية:
لماذا لا يمكنني تنشيط التطبيق في WeChat وأحتاج إلى فتحه باستخدام المتصفح؟
نظرًا لأن WeChat قام بتنفيذ حماية المخطط على جميع اتصالات المشاركة، أي أنه تم حظر جميع مكالمات المخطط في اتصالات المشاركة بواسطة WeChat.
فلماذا يمكن استحضار بعض التطبيقات، مثل Dianping وDidi Taxi؟
من منظور غير تقني، بسبب Dianping وDidi Taxi، فهما أبناء WeChat وأبناء بيولوجيين. لديه رعاية خاصة لابنه.
من منظور تقني، يحتوي WeChat على قائمة بيضاء، ولن يتم حظر مكالمات المخطط للاتصالات المشتركة في القائمة البيضاء.
لا أفهم؟ دعونا نعطي مثالا.
على سبيل المثال، رابط مشاركة Dianping هو http://dazhongdianping.share.1.com
وفقًا لقائمة WeChat البيضاء، سيكون هناك عنصر http://dazhongdianping. لن تؤدي جميع المشاركات الناشئة عن هذا الاتصال إلى حظر المخطط.
على سبيل المثال http://dazhongdianping.share.2.com
http://dazhongdianping.share.3.com
حتى الشركات التابعة لـ Dianping يمكنها استخدام http://zigongsi.dazhongdianping.share.3.com. اسم المجال الجذر موجود أيضًا في القائمة البيضاء، لذا يمكن استخدامه.
في هذه المرحلة، يجب أن يفهم الجميع أنه من المستحيل تجاوز هذه المشكلة عن طريق استعارة مخطط Dianping ما لم يكن من الممكن ربط رابط المشاركة الخاص بك باسم المجال الجذر لـ Dianping.
يجب توضيح هذا السؤال بوضوح، والشيء الآخر الذي يجب ذكره هو أنه عندما يتعلق الأمر بتنزيل apk، فإن WeChat يحظر أي تطبيق، والأبناء ليسوا استثناءً فلا يمكنك الهروب باستخدام المتصفح لفتحه.
الملحق: مخططات URL للتطبيقات الشائعة
1. التطبيق الافتراضي للنظام
اسم | مخطط URL | معرف الحزمة |
---|---|---|
سفاري | http:// | |
خرائط | http://maps.google.com | |
هاتف | الهاتف: // | |
رسالة قصيرة | رسالة قصيرة:// | |
بريد | ميلتو: // | |
كتب إلكترونية | إيبووكس: // | |
متجر التطبيقات | itms-apps://itunes.apple.com | |
موسيقى | موسيقى:// | |
فيديوهات | أشرطة الفيديو: // |
2. برامج الطرف الثالث شائعة الاستخدام
اسم | مخطط URL | معرف الحزمة |
---|---|---|
ف ف | مق: // | |
وي شات | ويشين: // | |
تينسنت ويبو | تينسنت ويبو: // | |
تاوباو | تاوباو: // | |
أليباي | أليباي: // | |
ويبو | سيناويبو: // | |
ويكو ويبو | ويكو: // | |
متصفح كيو كيو | متصفح مكق: // | com.tencent.mttlite |
متصفح جامعة كاليفورنيا | دولفين: // | com.dolphin.browser.iphone.chinese |
افتح المتصفح | http:// | com.oupeng.mini |
متصفح سوغو | سوجوMSE:// | com.sogou.SogouExplorerMobile |
خريطة بايدو | خريطة بايدوماب::// | com.baidu.map |
الكروم | جوجل كروم:// | |
يوكو | يوكو: // | |
جينغدونغ | openapp.jdmoble:// | |
الجميع | رينرين: // | |
ميتوان | إيميتوان: // | |
المتجر رقم 1 | وكبيهاوديان: // | |
سوف أتحقق | مجلس الكنائس العالمي: // | |
قاموس يوداو | yddictproapp:// | |
زيهو | زيهو: // | |
مراجعة | ديانبينغ: // | |
القرص الصغير | سينافديسك: // | |
دوبانفم | راديو دوبان: // | |
نيتياس فئة مفتوحة | نتيسوبين: // | |
ملك بطاقة العمل الشامل | بطاقة الفيديو: // | |
موسيقى كيو كيو | كيو ميوزيك: // | |
فيديو تينسنت | عشرةفيديو: // | |
افلام دوبان | دوبانفيلم:// | |
نيتياس كلاود ميوزيك | أورفيوس: // | |
أخبار نيتياس | تطبيق الأخبار: // | |
تطبيق نيتياس | التطبيق: // | |
يانصيب نيتياس | نتيسكايبياو:// | |
ملاحظات يوداو السحابية | يوداونوت: // | |
شاهد المزيد | قارئ دوكان::// | |
المؤشر الوطني لجودة الهواء | بكين القذرة: // | |
موسيقى بايدو | موسيقى بايدومي:// | |
اذهب إلى المطبخ | xcfapp:// |
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.