Возможно ли, чтобы веб-страница обнаружила, что к ней обращаются из приложения веб-просмотра? - PullRequest
0 голосов
/ 14 сентября 2018

Допустим, у меня есть веб-сайт, который содержит только 2 страницы.

  1. http://example.com
  2. http://example.com/webview.html

Затем я создал веб-просмотрРеагировать на собственное приложение это может быть просто так:

App.js

import React, { Component } from 'react';
import { WebView } from 'react-native';

export default class MyWeb extends Component {
  render() {
    return (
      <WebView
        source={{uri: 'http://example.com/webview.html'}}
        style={{marginTop: 20}}
      />
    );
  }
}

Теперь мой вопрос: возможно ли, чтобы веб-страница обнаружила, что онадоступ из приложения webview?

Допустим, у меня есть условие в файле webview.html, например:

if ( webview ) {
  return 'webview';
}
else {
  return 'normal browser'
}

Может быть, что-то вроде вставки JavaScript, может быть переменная из веб-просмотра на веб-страницу?Затем я могу использовать эту переменную для проверки ее существования, тогда, если она существует, то это веб-просмотр, иначе это не так.

Я знаю, что javascript может определять используемый браузер, разрешение экрана, ОС и т. Д.возможно?

Приложение имеет целевую ОС Android и iOS.

1 Ответ

0 голосов
/ 14 сентября 2018

Попробуйте использовать navigator.userAgent.

Вы можете установить пользовательский UserAgent в веб-просмотре целевого приложения.

Для iOS:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
    NSString *newUserAgent = [userAgent stringByAppendingString:@" Your Custom Key"];//your custom key
    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newUserAgent, @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
}

Для Android:

WebSettings settings = webview.getSettings();

String ua = webview.getSettings().getUserAgentString();  
webview.getSettings().setUserAgentString(ua+"; Your Custom Key");

В h5 вы можете выбрать ua и определить цель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...