• Tag Archives: uni-app

uni-app使用H5+调用原生的安卓方法

uni-app代码:

//获取当前Activity,使用H5的方式调用android原生方法,从而启动activity
var main = plus.android.runtimeMainActivity();
//invoke: 调用对象(类对象/实例对象)的方法,调用Android原生方法        
let result = plus.android.invoke('cn.com.sway.test.TestActivity', 'test', main);
//弹窗显示返回结果
uni.showToast({
	title: "调用原生activity返回的结果为:\n" + result,
	icon: 'none',
	duration: 2000
});

安卓代码:

package cn.com.sway.test;

import android.app.Activity;
import android.widget.Toast;

import java.util.Random;

public class TestActivity extends Activity {

    public static String test(Activity activity, String text){
        Toast.makeText(activity, "来自uni-app的消息:"+text, Toast.LENGTH_SHORT).show();
        return "来自android的消息:"+(new Random()).nextInt();
    }

}

注意,被调用的安卓方法必须为static静态方法,否则无法被调起。

uni-app离线android打包使用scheme

hbuilder版本:3.1.12

在AndroidManifest.xml中对io.dcloud.PandoraEntry添加scheme内容(注意不是io.dcloud.PandoraEntryActivity)

        <activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:hardwareAccelerated="true"
            android:theme="@style/TranslucentTheme"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize" >
            <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:scheme="xxxxx" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.oppopush" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

记得把scheme换成正确的。

close