1

我正在使用 Ionic 4 开发一个混合应用程序。Ionic 就像其他基于 html5 的应用程序一样webviewMainActivity. 使用电容器我已将我的应用程序导入到 android studio 并创建了一个SecondActivity. 如何SecondActivity通过单击第一个活动(MainActivity)中的按钮(这是一个 Ioninc 页面,并且肯定是一个 html webview)来访问。

到目前为止,我已经尝试了不同的方法来实现这一点,但没有运气。我按照本教程创建了一个cordova插件: 从cordova插件启动android活动 它在cordova应用程序中运行良好,但我没有成功将它导入Ionic。我也尝试过电容器,显然使用电容器访问本机代码应该非常容易,但不幸的是,到目前为止我还没有运气。 https://capacitor.ionicframework.com/docs/plugins/android

4

2 回答 2

2

经过很多努力!这是答案:我提到的插件实际上在cordova中很酷,并将它带到ionic4(因为插件的clobbers是“PluginName”,你必须在你的打字稿中声明和使用它)我的代码如下(主页.page.ts):

import { Component } from '@angular/core';
declare var PluginName: any;
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
goToCustomActivity(){
PluginName.new_activity();
}
}

在你的 home.page.html 中:

<ion-content>
<ion-button (click)="goToCustomActivity()">go to custom activity</ion- 
button>
</ion-content>

我希望这对某人有所帮助。特别感谢插件“Ijas Ahamed N”的原始编码器,您可以在此处找到编写插件的说明: https ://www.ijasnahamed.in/2016/11/start-android-activity-from-cordova.html ,这里是stackoverflow(注意!在stackoverflow中省略了创建package.json的步骤!) 从cordova插件启动android活动

于 2019-01-04T04:58:55.133 回答
0

您可以通过使用WebView.addJavaInterface来做到这一点。只需用 Java 编写一个 Android 类(以启动您想要的 Activity),然后通过调用将对象注入 WebView 上下文中WebView.addJavaInterface()。单击 HTML 按钮时,调用注入的 JS 方法来启动 Activity。

活动启动器:

class MyJsInterface {
    @JavascriptInterface
    public String launchActivity() {
        // ...;
    }
 }

注入它:

webview.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJsInterface(), "AndroidInterface");
webView.loadUrl(...);

在您的网页中:

<button onclick="AndroidInterface.launchActivity()">Launche Activity</button>
于 2019-01-03T03:45:49.377 回答