如何实现App调用JavaScript代码?

在移动应用开发中,有时需要从原生代码(如iOS或Android)调用JavaScript代码,这种交互通常用于混合应用开发,例如使用React Native、Flutter等框架时,下面以iOS和Android为例,详细描述如何实现这一过程。

iOS 调用 JavaScript

app 调用 js

使用 WKWebView

WKWebView 是 iOS 上一个强大的 Web 视图组件,它允许你在原生应用中嵌入网页内容,并且可以与 JavaScript 进行交互。

步骤:

1、创建 WKWebView:

   import WebKit
   class ViewController: UIViewController, WKScriptMessageHandler {
       var webView: WKWebView!
       override func loadView() {
           let webConfiguration = WKWebViewConfiguration()
           webView = WKWebView(frame: .zero, configuration: webConfiguration)
           webView.navigationDelegate = self
           view = webView
       }
       override func viewDidLoad() {
           super.viewDidLoad()
           let url = URL(string: "https://example.com")!
           webView.load(URLRequest(url: url))
           webView.configuration.userContentController.add(self, name: "nativeToJS")
       }
   }

2、实现 WKScriptMessageHandler:

   extension ViewController: WKScriptMessageHandler {
       func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
           // Handle the incoming message from JavaScript here
       }
   }

3、在 JavaScript 中调用原生代码:

   // In your HTML/JavaScript file
   window.webkit.messageHandlers.nativeToJS.postMessage("Hello from JavaScript");

4、从 Swift 向 JavaScript 发送消息:

app 调用 js

   func sendMessageToJS(message: String) {
       webView.evaluateJavaScript("receiveMessageFromNative('(message)')") { (result, error) in
           if let error = error {
               print("Error: (error.localizedDescription)")
           } else {
               print("Message sent to JavaScript successfully")
           }
       }
   }

5、在 JavaScript 中接收消息:

   // In your HTML/JavaScript file
   function receiveMessageFromNative(message) {
       console.log("Message from native: " + message);
   }

Android 调用 JavaScript

使用 WebView

在 Android 上,可以使用WebView 组件来加载网页并与 JavaScript 进行交互。

步骤:

1、创建 WebView:

   import android.os.Bundle;
   import android.webkit.JavascriptInterface;
   import android.webkit.WebSettings;
   import android.webkit.WebView;
   import androidx.appcompat.app.AppCompatActivity;
   public class MainActivity extends AppCompatActivity {
       private WebView myWebView;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);
           myWebView = findViewById(R.id.webview);
           myWebView.getSettings().setJavaScriptEnabled(true); // Enable JavaScript
           myWebView.addJavascriptInterface(new WebAppInterface(), "Android"); // Add interface
           myWebView.loadUrl("file:///android_asset/www/index.html"); // Load local HTML file
       }
   }

2、创建 JavaScript 接口:

app 调用 js

   public class WebAppInterface {
       @JavascriptInterface
       public void showToast(String message) {
           Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
       }
   }

3、在 JavaScript 中调用原生代码:

   // In your HTML/JavaScript file
   function callNativeFunction() {
       Android.showToast("Hello from JavaScript");
   }

4、从 Java 向 JavaScript 发送消息:

   @JavascriptInterface
   public void sendMessageToJS(String message) {
       myWebView.loadUrl("javascript:receiveMessageFromNative('" + message + "')");
   }

5、在 JavaScript 中接收消息:

   // In your HTML/JavaScript file
   function receiveMessageFromNative(message) {
       console.log("Message from native: " + message);
   }

通过以上步骤,你可以在 iOS 和 Android 平台上实现原生代码与 JavaScript 之间的相互调用,这种方法非常适用于混合应用开发,能够充分利用原生功能和 Web 技术的优势。

小伙伴们,上文介绍了“app 调用 js”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/711552.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seoK-seo
Previous 2024-12-07 01:51
Next 2024-12-07 01:55

相关推荐

  • 如何在Android设备上实现点击识别文字功能?

    Android点击识别文字在Android设备上,通过点击屏幕上的文本进行识别是一项非常实用的功能,这项技术通常被称为光学字符识别(OCR),结合了图像捕捉和文字处理技术,使得用户能够轻松地从图片中提取文字信息,本文将详细介绍如何在Android应用中实现点击识别文字的功能,包括所需的工具、步骤以及可能遇到的问……

    2024-11-08
    08
  • 如何将数据转移到iOS设备?「如何将数据转移到ios设备上」

    在当今的数字化时代,我们的大部分数据都存储在各种设备和云端服务中,无论是工作文件、个人照片,还是音乐和视频,我们都需要一种有效的方式来将这些数据转移到iOS设备上,本文将详细介绍如何将数据转移到iOS设备。我们需要了解的是,iOS设备包括iPhone、iPad和iPod Touch等,这些设备都支持通过iTunes进行数据同步,但是,……

    2023-11-13
    0272
  • 如何实现Android日期左右无限滑动功能?

    Android日期左右无限滑动实现指南在Android应用开发中,实现一个可以左右无限滑动的日期选择器是一个常见需求,这种功能通常用于日历应用、事件管理或任何需要用户选择特定日期的场景,本文将详细介绍如何实现这一功能,包括关键步骤、代码示例以及可能遇到的问题和解决方案,1. 技术准备与环境搭建开发环境:确保已安……

    2024-11-06
    010
  • ios原生与html5交互,ios原生和h5区别

    欢迎进入本站!本篇文章将分享ios原生与html5交互,总结了几点有关ios原生和h5区别的解释说明,让我们继续往下看吧!HTML5和原生APP优缺点大对比,世界究竟是谁的1、唯一的障碍是在移动端,因为无论是Android还是iOS平台,当前仍是原生应用大行其道。2、基于当时的背景,他们认为原生是不可替代的,“原生+HTML5”的混合模式更有意义。所以现在Cordova的使用模型是“原生工程师+HTML5工程师”一起协作完成App。

    2023-12-10
    0127
  • html怎么支持安卓设备

    HTML 是一种用于创建网页的标准标记语言,它可以通过各种设备进行访问,包括安卓设备,为了让 HTML 页面在安卓设备上正常显示和运行,我们需要了解一些基本的技术和方法。1、响应式设计: 响应式设计是一种让网站在不同设备上都能良好展示的方法,通过使用 CSS3 的媒体查询和弹性布局,我们可以使网页根据设备的屏幕尺寸和分辨率进行自适应调……

    2024-03-23
    0107
  • ios项目是什么

    iOS项目是指使用苹果公司的iOS操作系统进行开发的应用程序。

    2024-01-25
    0327

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入