Maison interface Web js tutoriel Introduction aux méthodes courantes d'interaction de données entre JavaScript et les applications natives

Introduction aux méthodes courantes d'interaction de données entre JavaScript et les applications natives

Nov 12, 2018 pm 05:16 PM
html5 javascript

Le contenu de cet article est une introduction aux méthodes d'interaction de données couramment utilisées entre JavaScript et les applications natives. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Scénario 1

Les pages H5 sont souvent utilisées dans les applications natives, comme les pages d'événements dans le e-commerce, les pages de détails dans certains e-commerces, etc.. .Ces pages ont toutes une caractéristique, c'est-à-dire la possibilité de modification dans le futur, et le risque de modification ponctuelle est particulièrement élevé. Par conséquent, utiliser des pages H5 est le choix le plus judicieux.
Une fois que vous utiliserez H5, vous aurez inévitablement quelques interactions avec le développement natif (Android, IOS). Les solutions suivantes peuvent vous aider à le résoudre.
Le principe d'implémentation est d'injecter nativement une méthode js dans l'objet window js pour préparer l'application native au déclenchement de la punition. C'est aussi simple que notre méthode habituelle d'appel à onclick.

Code js :

// mobile/index.js 常用js 调用原生的方式都在这里体现。
export default {
    /**
     * 调用移动端方法
     *
     * @param {*} {name, params, call} 移动端注入的方法名 | 参数 | 回调
     */
    callMoblieMethods({name, params, call}){
        // 移动端安卓的环境
        if(window.android) {
            // 移动端使用java所以不能直接解析json,只能解析字符串或者json字符串
            window.android[name](JSON.stringify(params));  
        }
        // 移动端IOS的环境
        if(window.webkit && window.webkit.messageHandlers) {
            window.webkit.messageHandlers[name].postMessage(params);
        }
    }
}
Copier après la connexion

Méthode d'appel

if(window.android || (window.webkit && window.webkit.messageHandlers.activityDetails)) {
    mobile.callMoblieMethods({ name: 'activityDetails', params: {activityId: item.act_id}});
}
Copier après la connexion

Cette condition de jugement peut vous paraître étrange. J'ai testé différents modèles de machines. La fenêtre Android le fait certainement. n'a pas d'attributs, mais sur IOS, il aura son propre attribut webkit, nous déterminons donc d'abord s'il a un attribut webkit puis s'il a un nom de méthode injecté afin qu'il puisse bien appeler cette méthode

To ; faciliter votre recherche, le code mobile est également joint ici :

//Android

public class AndroidJavascriptInterface {

  Activity mActivity;

  public AndroidJavascriptInterface(Activity activity) {
      this.mActivity = activity;
  }

  //诊所详情
  @JavascriptInterface
  public void clinicDetails(String jsonData) {
      Log.i("znh", "H5-JS-诊所详情");
      Intent intent = new Intent(mActivity, OutPatientActivity.class);
      Bundle bundle = new Bundle();
      bundle.putString(Constants.CLINIC_ID, GsonUtil.getJSONObjectKeyVal(jsonData, "clinicId"));
      intent.putExtras(bundle);
      mActivity.startActivity(intent);
  }

  //活动详情
  @JavascriptInterface
  public void activityDetails(String jsonData) {
      Log.i("znh", "H5-JS-活动详情");
      Intent intent = new Intent(mActivity, ActivityDetailActivity.class);
      Bundle bundle = new Bundle();
      bundle.putString("id", GsonUtil.getJSONObjectKeyVal(jsonData, "activityId"));
      intent.putExtras(bundle);
      mActivity.startActivity(intent);
  }
}


//IOS
#import <JavaScriptCore/JavaScriptCore.h>

WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
[wkWebConfig.userContentController addScriptMessageHandler:self name:@"clinicDetails"];
[wkWebConfig.userContentController addScriptMessageHandler:self name:@"activityDetails"];
Copier après la connexion

Grâce à ce procédé, vous pouvez facilement faire appel à la méthode native.

Scénario 2

Nous devons utiliser un lien dans le message texte pour ouvrir l'application native. Sinon, il sera d'abord invité à télécharger une application. , l'application native Vous devez définir un lien URL que les programmeurs front-end pourront appeler dans le navigateur. Laissez-moi d'abord vous montrer un exemple de lien :

// IOS
iOSStarClinic://

// Andriod 
yjjkyl://starclinic
Copier après la connexion

Court et concis, il vous suffit d'appeler ceci.

Ensuite Comment faire ça en js ?

if(this.isIOS) {
    window.location.href = 'iOSStarClinic://';//与APP约定的一个协议URL
} else {
    var state = null;
    try {
        state = window.open('yjjkyl://starclinic', '_blank');//与APP约定的一个协议URL
    } catch(e) {}
    if (state) {
        window.close();
    } else {
        window.location.href = gbs.patientDownUrl;
    }
}
Copier après la connexion

Déterminez d'abord s'il s'agit d'un environnement IOS ou Android. En fait, les navigateurs actuels ne peuvent plus utiliser de remèdes populaires (méthodes de synchronisation) pour vérifier si l'application est installée à l'heure actuelle, car le navigateur est installé. une invite apparaîtra. La boîte nécessite la confirmation de l'utilisateur pour sauter, donc une fois que l'utilisateur ne clique pas pour confirmer, le navigateur sautera ! Par conséquent, certains contenus doivent être affichés à l'utilisateur sur la page actuelle afin qu'il y ait d'autres processus métier lorsque l'utilisateur n'ouvre pas l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Espace réservé d'entrée HTML Espace réservé d'entrée HTML Sep 04, 2024 pm 04:54 PM

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Bouton HTML onclick Bouton HTML onclick Sep 04, 2024 pm 04:49 PM

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.

See all articles